クリプトゾンビ

クリプトゾンビLesson 6 capture9 Eventのサブスクライブ

更新日:

Lesson 6 capture9 Eventのサブスクライブ

新しいゾンビのリッスン

zombiefactory.sol内でイベントを使用。
event NewZombie(uint zombieId, string name, uint dna);

Web3.jsでは、web3プロバイダがコード中のロジックをトリガーとして引くようにイベントを サブスクライブ できる。

cryptoZombies.events.NewZombie()
.on("data", function(event) {
let zombie = event.returnValues;
// `event.returnValues`オブジェクトのこのイベントの戻り値3つにアクセスできる:
console.log("A new zombie was born!", zombie.zombieId, zombie.name, zombie.dna);
}).on("error", console.error);

これだとそのユーザーの分だけでなく、DApp内でゾンビが作成されるたびに通知が表示されてしまう。
そのユーザーの分だけ通知が必要な場合はどうすればよいのか?

ERC721の実装で行ったTransferイベントのようにindexedというキーワードを使用しなくてはならない

event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
この場合、_fromと_toはindexedされているので、フロントエンドのイベントリスナーでそれらをフィルターすることは可能
// `_to`が`userAccount`と等しいときだけこのコードが動作するように`filter`を使う
cryptoZombies.events.Transfer({ filter: { _to: userAccount } })
.on("data", function(event) {
let data = event.returnValues;
// 現在のユーザーがゾンビを受け取った!
// それを示すようUIをアップデートする何かを行おう
}).on("error", console.error);

getPastEventsを使って過去のイベントをクエリすることや、fromBlock及びtoBlockのフィルターを使用してSolidityに期間を指定してイベントのログを取ることも可能

cryptoZombies.getPastEvents("NewZombie", { fromBlock: 0, toBlock: "latest" })
.then(function(events) {
// `events`は、上でやったように反復可能な`event`配列内のオブジェクトである
// このコードは、これまで生成された全ゾンビのリストを提供してくれる
});
cryptoZombies.events.Transfer({ filter: { _to: userAccount } })
.on("data", function(event) {
let data = event.returnValues;
getZombiesByOwner(userAccount).then(displayZombies);
}).on("error", console.error);

prev

ogp
クリプトゾンビLesson 6 capture8 Payable関数の呼び出し

Lesson 6 capture8 Payable関数の呼び出し payable関数でレベルアップ contract ZombieHelper内 function levelUp(uint _zomb ...

続きを見る

NEXT
以上でクリプトゾンビBeginner to Intermediate Smart Contractsは完了です。

0から作るDapps入門 フロントエンド編 APP.jsを確認

APP.jsを確認 dapps-sample-frontend(https://github.com/melonattacker/dapps-sample-frontend)のコードを確認する。 1行 ...

続きを見る

TruffleでスマートコントラクトをRinkebyテストネットへデプロイ

0から作るDapps入門を参考にDappsを作る。 以下は、0から作るDapps入門を参考にDappsを作成した際のメモです。 ほぼ初心者の状態で作成したので、インストール手順やディレクトリ構成が異なります。

続きを見る

クリプトゾンビを改造して作ってみたいもの

エボリューションを作る

クリプトゾンビを改造したアプリをつくりたい 仕様 大幅な改造はしない(できない) クリプトゾンビのDNAのパターンを増やす。(できれば2列) DNAパターンに合わせて画像を増やす。 外部環境(気温、隕 ...

続きを見る

ビットコインってなに?

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.