はじめに
NEOを使うと簡単にマイコインが作れた!!ので、
自分がちょっとハマってしまったポイントと共に、通貨の作成方法をまとめます。
NEOとは
NEOは、分散アプリケーションのスケーラブルなネットワークを構築するために設計されたブロックチェーンプラットフォームと暗号化方式です。
NEO is a blockchain platform and cryptocurrency designed to build a scalable network of decentralized applications.
引用:
https://en.wikipedia.org/wiki/NEO_(cryptocurrency)
環境作成
参考: Mac(マック)で行うNEO(ネオ)の プライベートネットの環境構築をわかりやすく解説
事前準備
リンク先にあるように、
- Homebrew
- python3.6以上
- git
- Docker
のインストールをしましょう。
neo-pythonのインストールと起動
$ docker pull cityofzion/neo-privatenet
# private netを起動
$ docker run --rm -d --name neo-privatenet -p 20333-20336:20333-20336/tcp -p 30333-30336:30333-30336/tcp cityofzion/neo-privatenet
# leveldbのパッケージをインストール
$ brew install leveldb
# neo-pythonをインストール
$ pip install neo-python
# python3.6を使って仮想環境を構築
$ python3.6 -m venv venv
$ . venv/bin/activate
# neo-pythonを起動
$ np-prompt -p -v
# 自分は上のコマンドでエラーが出たので、下記コマンドでpycryptodomeを入れ直しました
$ pip3 uninstall pycrypto
$ pip3 uninstall pycryptodome
$ pip3 install pycryptodome==3.6.1
# neo-pythonを起動
$ np-prompt -p -v
Privatenet useragent '/NEO:2.7.4/', nonce: 1173470966
[I 180702 23:49:24 LevelDBBlockchain:115] Created Blockchain DB at /Users/username/.neopython/Chains/privnet
[I 180702 23:49:24 NotificationDB:73] Created Notification DB At /Users/username/.neopython/Chains/privnet_notif
NEO cli. Type 'help' to get started
neo> exit
コインを作成する
まずはリポジトリを取得します
$ git clone https://github.com/kentarohorie/simple-neo-token-sample
simple-neo-token-sample/yourcoin/token.pyの TOKEN_NAME
と TOKEN_SYMBOL
を好きな名前に変えましょう!!
TOKEN_NAME = 'yourcoin'
TOKEN_SYMBOL = 'yourcoin'
walletの更新
$ cd simple-neo-token-sample/wallets/
$ rm neo-privnet.wallet
$ wget https://s3.amazonaws.com/neo-experiments/neo-privnet.wallet
walletを開きます
$ cd ../
$ ls
README.md wallets yourcoin-smartcontract.py
__init__.py yourcoin
$ np-prompt -p -v
neo> open wallet wallets/neo-privnet.wallet
#パスワードはcozです
#walletの中身を確認
neo> wallet
.pyファイルからavmファイルにコンパイルし、コントラクトをプライベートネットワークにデプロイします
neo> build ./yourcoin-smartcontract.py test 0710 05 True False name []
neo> import contract yourcoin-smartcontract.avm 0710 05 True False
#返答があるまで待つ
返答があったら、"script_hash"の値を控えておいてください
#<script_hash>の値に置き換えて実行してください
neo> testinvoke <script_hash> deploy []
neo> import token <script_hash>
こんな感じの返答があったら完了です!
[I 180703 00:30:05 EventHub:71] [test_mode][SmartContract.Execution.Success] [14657f895103adfa9d204a89606a70f6f6d0b73a] [b'yourcoin', b'yourcoin', 8]
added token {
"name": "yourcoin",
"symbol": "yourcoin",
"decimals": 8,
"script_hash": "script_hash",
"contract_address": "contract_address"
}