どうも、 エンジニア向けの記事もちょくちょく書いているYuki Hiraiです。
今日は
NEO(ネオ/ニオ)でNEP5に準拠した独自トークンを実装する手順
について書いていきます
まず、NEO(ネオ/ニオ)について簡単に説明します
ちなみに、日本人はNEOのことを“ネオ”と発音してるけど
海外の人は
“ニオ”
って発音してます
日本では間違った発音で広まっちゃってるから
“ニオ”って呼ぶと玄人感がでます!←
このNEOは
中国版イーサリアム
なんて呼ばれていて
中国を中心に開発が進められてる
スマートコントラクトのプラットフォーム
のことを指します。
NEOを使用して独自トークン・dAppsの実装ができます。
イーサリアムの独自トークン実装については以前
別の記事で書いてます
イーサリアムの開発には専用のプログラミング言語である
Solidity
っていう言語を勉強する必要がありますが
NEO(ネオ)は特定のプログラミングに依存せずに開発できる環境を整えていっていて
いまだと以下の言語のサポートが比較的充実してます
なかでもいまはC#の開発環境が充実してるっていう印象を受けました
JavaやPythonの対応も進んできてるけど
他の言語はまだまだこれからサポートされていく!って感じです
ちなみに、NEOのdAppsは以下のサイトから確認できるよー!
NEOで独自トークンを実装するときは
NEP5に準拠したトークンを実装する必要があります
NEP5っていうのはトークンを標準化するための仕様のことで
イーサリアムでいうERCのようなものです
5番目の仕様だからNEP5といいます
現時点ではこれがスタンダードのようです
詳しい内容は以下のリンクからみれます
ざっくり以下を実装する必要があります
これらは必ず実装しなければいけないメソッドです
他にも任意で実装するメソッドもいくつか用意されてます
これらを実装してブロックチェーンにプログラムをアップすることで
NEOバーチャルマシン(VM)でプログラムが動作するようになります
開発環境の設定は以下のリンクを参考にすればうまくいくかとおもいます
C#の開発環境が一番整備されてるから
C#にの環境設定についてのリンクを紹介します
Macの人はこちら
▶︎ macOSにおいてC#を使用してNeoスマートコントラクトを作成する方法
Windowsの人はこちら
▶︎ C#を使用してNeoスマートコントラクトを作成する方法
ざっくりこのチュートリアルで使用するツールを
リストアップするとこんな感じです
チュートリアルをそのまま進めていけば
開発環境自体は比較的簡単に整います
Visual Studioはプログラムの実装・コーディングに使用します
neo-compilerはプロジェクトのダウンロードが完了したら neo-compiler.sln
ファイルをVisual Studioで開いてビルド
ビルドが完了すれば neo-compiler/neon/bin/Debug/netcoreapp2.0
ディレクトリに
.ddlファイル
ができるます
.NET Core Runtime 2.0.5のインストールが完了していれば
dotnet
コマンドを使用できるようになっているはずです
Visual Studioで簡単なサンプルを実装して
プロジェクトをビルドすると同じように .ddlファイル
ができるので
そのファイルを neo-compiler/neon/bin/Debug/netcoreapp2.0
ディレクトリにコピーして
サンプルで作ったファイルを neo_practice.dll
とすると
こんな感じでコンパイルできるようになる
dotnet neon.dll neo_practice.dll
コンパイル結果は以下のようになります
Neo.Compiler.MSIL console app v2.0.3.1
Find entrypoint:System.Boolean Class1::Main()
convert succ
gen abi succ
write:neopractice.avm
write:neopractice.abi.json
SUCC
ひとまずチュートリアルでここまでできればOKです
NEP5トークンの実装で参考になるドキュメントや
ソースコードについて書いていきます
まずドキュメントはこちら
このチュートリアルを順に進めていけばコントラクトのデプロイまでできるようになります
その際に、neo-guiっていうツールのダウンロードが必要になります
このツールを使用すれば
NEO VMへのデプロイを容易に行うことができるようになります
次に参考になるソースコードですが
NEP5に準拠した実装例があります
このコードを読んで
実際に独自トークンを実装するときの参考にできます
あと、ICO用の実装サンプルも用意してくれてます!
これに関しては以下の部分を書き換えるだけで
テストネットにデプロイすれば
実際にトークンセール参加のテストなんかもできたりします
ここでNameやSymbol、オーナーのウォレットアドレスを変更
public static string Name() => “name of the token”;
public static string Symbol() => “SymbolOfTheToken”;
public static readonly byte[] Owner = “ATrzHaicmhRj15C3Vv6e6gLfLqhSD2PtTr”.ToScriptHash();
ICOの参加日時をunixtimestampで指定する
private const int ico_start_time = 1506787200;
private const int ico_end_time = 1538323200;
あとはこれをテストネットへデプロイして動作確認
ここまで用意してくれてるのは嬉しいですね(個人的には使わないですがw)
NEOで実際にトークンを実装してテストネットへのデプロイや
動作確認をしたい場合に
テスト用のNEOやGASが必要になります
それらに関しては以下のURLから
申請することで指定してウォレットで受け取ることができます
NEOにはいくつかウォレットアプリがあって
以下のURLからそれぞれ確認することができます
▶︎ Get Client
自分は実際にNeon Walletを使用して
トークンセール参加のテストをしてみましたが
なかなか使いやすかったです
▶︎ Neon Wallet
また、NEOについてや開発周りのドキュメントはこの”awesome-neo“っていうGitHubリポジトリで確認することができます
例えば、SDKの対応状況なんかも確認できます
ソースコードの例なんかもここから確認できます
以上、ざっくりやけどNEP5トークンの実装に役立つ情報を書いてました
公式ドキュメントが豊富で
ちゃんと読み込んでいけば
そんなに実装には困らないかなぁって感じです