クリプトゾンビ

クリプトゾンビ Lesson 2 JavaScript の実装

更新日:

Lesson 2 JavaScript の実装

Lesson 2のコントラクトをイーサリアムで実行する準備ができたら、コンパイルしてZombieFeedingを実行する。
このコントラクトはZombieFactoryを継承した最終コントラクトであり、両方のコントラクトのpublicメソッドにアクセスできる。

コントラクトをコンパイルするとabiとバイトコードが生成され、さらにネットワーク上にdeployすることでアドレスが与えられる。

abi :ブロックチェーンの外部から、およびコントラクト間の対話のために、イーサリアムエコシステム内のコントラクトと対話するための標準的な方法(JSON形式)。
コントラクトの機能をEthereumの外部、もしくは別のコントラクトから呼び出すための標準化された方法を定義しています。
今回の場合、solidityとJavascriptのインターフェースを定義。
バイトコード:ノード上のEVMが実行できる形式の機械語。
deploy:EVMネットワーク上に展開し配置すること。

JavaScript とweb3.jsを使用して実行したコントラクトがやりとりする例

var abi = /* abi generated by the compiler */
var ZombieFeedingContract = web3.eth.contract(abi)
var contractAddress = /* our contract address on Ethereum after deploying */
var ZombieFeeding = ZombieFeedingContract.at(contractAddress)

// ゾンビのIDと捕食したい子猫のIDをすでに持っているものとする。
let zombieId = 1;
let kittyId = 1;

// クリプトキティの画像を取得するにはweb APIに照会する必要がある。
// この情報はブロックチェーンにはない。ウェブサーバーにあるだけだ。
// もし全ての情報がブロックチェーン上に格納されていれば、サーバーの
// 障害を心配することはなくなるがな。まぁこのゾンビゲームを気に入ってもらえなければ、
// APIを変更するか我々のアクセスをブロックするだけだ。問題ない 😉
let apiUrl = "https://api.cryptokitties.co/kitties/" + kittyId
$.get(apiUrl, function(data) {
let imgUrl = data.image_url
// 画像を表示する部分だ
})

// ユーザーが子猫をクリックししたときの処理だ:
$(".kittyImage").click(function(e) {
// コントラクトの`feedOnKitty` メソッドを呼び出す
ZombieFeeding.feedOnKitty(zombieId, kittyId)
})

// コントラクトのNewZombieイベントをリッスンして表示できるようにする部分だ:
ZombieFactory.NewZombie(function(error, result) {
if (error) return
// この関数はレッスン1でやったのと同じようにゾンビを表示するものだ:
generateZombie(result.zombieId, result.name, result.dna)
})

クリプトゾンビ実際の動作

https://cryptozombies.io/jp/lesson/2/chapter/14

prev

ogp
クリプトゾンビ Lesson 2 Chapter13If ステートメント

Lesson 2 Chapter13If ステートメント SolidityのIfステートメントはJavaScript と同じ。 文字列の比較 function eatBLT(string sandwi ...

続きを見る

next
Lesson 3へ進む

ogp
クリプトゾンビ Lesson 3 Solidityの高度なコンセプト

Lesson 3 Solidityの高度なコンセプト DApp開発必要な技術 コントラクトのオーナーシップ ガス(燃料)のコスト コードの最適化 セキュリティ prev next

続きを見る

ビットコインってなに?

2008年11月、metzdowd.comにナカモトサトシにより投稿された論文Bitcoin:A Peer-to-Peer Electronic Cash Systemで定義された仕様とをもとにビットコイン・コミュニティーで開発が続けられる製造と取引に暗号学を使った通貨のことです。

ビットコイン自体は、フリー・ソフトウエアで、ソフトウェア開発のプラットフォームGitHubに登録すれば、ソースやドキュメント閲覧が可能で、開発に参加も可能です。

ナカモトサトシは、2010年12月まで開発に携わっていましたが、その後姿を消しました。日本名ですが、国籍も含め匿名性が高く身元も不明です。

真偽のほどは、不明ですがSBI社長の北尾氏が、2018年3月期第2四半期 SBIホールディングス(株)決算説明会動画の1:29:20頃)でナカモトサトシと議論を交わしたと発言して話題になりました。

ビットコインの仕組み

ビットコインは、P2P型の公開型分散台帳技術(DLT)によって信頼性を担保され運用されるブロックチェーンで結合された暗号通貨(cryptocurrency)のことです。

ビットコインは、P2Pネットワーク上のサーバー上で同一取引情報を持ちコントロールすることで取引の妥当性のチェックが行われるため、銀行など、特定の管理者がいない非中央集権型の仮想通貨と呼ばれています。

ブロックチェーン


GitHub

ブロックチェーンの動き

マイニング

ビットコインは送信アドレス(Tx)に対するデジタル署名によって保護されており、一定時間(10分)ごとに、すべての取引記録を分散台帳に追加します。

その追加処理には、ネットワーク上の分散取引台帳データと、10分間に発生したすべての取引のデータの整合性を取りながら正確に記録することが必要です。

整合性を取る作業は、膨大な計算量が必要となるため専用のハードウエアの計算能力を使って、誰でもが取引を処理することができます。

この手伝いをしてくれた人(膨大な計算処理を行った人)の中で、結果として追記処理を成功させた人には、その見返りとしてビットコインが支払われます。

この作業をマイニングと呼びます。

マイニングには、ソロマイニングとプールマイニングがあり、個人のPCでも余った演算能力でプールマイニングに参加できます。

ブロックチェーンをより深く理解する

全画面にして字幕設定を自動翻訳 イタリア語=>自動翻訳を経由して日本語に設定するとよくわかります。

上記デモは、下記リンク先サイトを使用しているので、自分でも試すことができます。

 

ジェネシス・マイニングでのハッシュパワー購入

ジェネシス・マイニングは世界最大の高く信頼されたビットコイン クラウド マイニングのプロバイダーです。ハッシュパワー購入時に,コード(kjx2uz)を使用した人は、購入時に3%の割引になります。

ブロックチェーンエクスプローラー

ブロックチェーンアドレスを入力することで、送金状況(confirmation回数の確認)が行えます。

イーサリウムの仕組み

-クリプトゾンビ

Copyright© 仮想通貨アンテナ , 2021 All Rights Reserved.