イーサー坊プライベートチェーンの簡易導入プロセス
5095 ワード
一、まずいくつかの概念を明らかにしてください:1、EVMは独立した軽量級の仮想マシン環境で、ブロックチェーンデータの一致性と許容誤り性を確保します;2、インテリジェント契約はクライアントからブロックチェーンにアップロードされ、鉱夫のEVMで実行される.3,以太坊はUTXOモデルではなく口座システム,世界状態を採用しているため,状態照会や変更に直接アクセスでき,記憶空間が小さくプログラミングが容易であるが,遡及履歴もサポートされず,再生攻撃をうまく処理する必要がある.総合的に言えば、それぞれ千秋がある.4,主にGasの制限によって不安定な契約とDDoS攻撃を下げる.5,将来的にはPoSコンセンサスメカニズム,スライスメカニズム,UTXOモデルへの参加が計画されている(後述).
二、開発常用IDE Mist機能がそろったクライアントGethイーサ坊ネットワークにアクセスする常用クライアントTruffle機能が豊富な応用開発フレームワークEmbarkはイーサ坊とIPFSを統合したDApp開発フレームワークRemixオンラインIDEをサポートし、デバッグとテスト環境を内蔵する
三、コマンドラインを使用してクライアントをインストールすることを提案する(ubuntu 16.04)
四、テスト用プライベートチェーン1を構築し、gensis.jsonファイルを新規作成する
chainIdはブロックチェーンIDを指定し、異なるIDネットワークのノードが互いに接続できない
2、ブロックチェーンの起動
創世ブロックと初期状態の生成
-nodiscoverは、同じ初期構成の見知らぬノードの追加を防止するために、ノード発見制限をオフにします.
3,js consoleインタフェースに入る
アカウントの作成
残高照会
きどうくっさく
採掘を中止する
二、開発常用IDE Mist機能がそろったクライアントGethイーサ坊ネットワークにアクセスする常用クライアントTruffle機能が豊富な応用開発フレームワークEmbarkはイーサ坊とIPFSを統合したDApp開発フレームワークRemixオンラインIDEをサポートし、デバッグとテスト環境を内蔵する
三、コマンドラインを使用してクライアントをインストールすることを提案する(ubuntu 16.04)
$sudo apt install software-properties-common
$sudo add-apt-repository -y ppa:ethereum/ethereum
$sudo apt update
$sudo apt install ethereum
四、テスト用プライベートチェーン1を構築し、gensis.jsonファイルを新規作成する
{
"config": {
"chainId": 23,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce":"0x0000000000000023",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x400",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "",
"gasLimit":"0x2fefd8"
}
chainIdはブロックチェーンIDを指定し、異なるIDネットワークのノードが互いに接続できない
2、ブロックチェーンの起動
創世ブロックと初期状態の生成
$geth --datadir PATH_TO_DATADIR init PATH_TO_GENSIS.JSON
$geth --identity "YOUR_NAME" --rpc --rpcport "DEFAULT_IS_8545" --datadir PATH_TO_DATADIR --port "DEFAULT_IS_30303" --nodiscover console
-nodiscoverは、同じ初期構成の見知らぬノードの追加を防止するために、ノード発見制限をオフにします.
3,js consoleインタフェースに入る
アカウントの作成
personal.newAccount()
残高照会
eth.getBalance(myaddress)
きどうくっさく
miner.start()
採掘を中止する
miner.stop()