2016-07-28 10 views
1

私の意図は、HyperledgerのデモであるMarbles applicationを複製することです。 hereの指示を使用して、私はUbuntu VM上のブロックチェーンネットワークをセットアップすることができました。しかし、私はチェーンコードを展開していませんでした。チェーンを読み込むためにAPIを呼び出すと、ブロックが1つあります。それは、私が思うに、創世記のブロックです。同じようなログリストもありました。Genesis block without chaincode?

私の質問は以下の通りです。ブロックチェーンを実行するという目的が、分散アプリケーション(例えばMarbles)を起動することである場合、チェーンコードをデプロイせずに、なぜ起源ブロックがマイニングされるのですか?チェーンコードが展開されていないと、ブロックチェーンネットワークはトランザクションを処理できないため、ブロック内にトランザクションが存在してはなりません。

なぜ、チェーンコードを展開せずに起源ブロックを採掘するのですか?

答えて

2

あなたが正しいです、起源ブロックは、査証ピアによって自動的に台帳の最初のブロックとして作成されます。 トランザクションは含まれておらず、ユニークな形式です。例は次のとおりです:

{"nonHashData":{"localLedgerCommitTimestamp":{"seconds":1469225503,"nanos":346624842}}} 

「previousBlockHash」プロパティはありません。このブロックのコンテンツは、ledger.blockchain.genesisBlockを使用してカスタマイズすることができます。

+0

ありがとうございました。どのシナリオでは、起源ブロックに少なくとも1つのトランザクション(起源ブロックをシードする)が必要であるという設定から恩恵を受けると思いますか? – cogitoergosum

+0

最初のトランザクションは「デプロイ」のみ可能です(例で更新された回答)。最初の起動時に何かを展開したい場合や、後で手動で展開する場合は、選択肢があります。 –

+0

多くの説明に感謝します! – cogitoergosum