Blockchain code Metaverse VR

SmartContract×VR×Crypto(604)

スポンサーリンク

//tips

//smart contract

DAppとやり取りできるwebページの流れを確認。

Ethereum FoundationのJavaScriptライブラリ Web3.js の観点から見ていく。

そもそも、イーサリアムのネットワークは、ブロックチェーンのコピーを持ったノード群で構成されており、コントラクトの関数を実行したい時にはノードの一つに接続した後に、コントラクトアドレス経由で
関数を呼ぶ。

ノード同士のコミュニケーションは、下記のようなJSON-RPCが使われる。

{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{"from":"0xb60e8dd61c5d32be8058bb8eb970870f07233155","to":"0xd46e8dd67c5d32be8058bb8eb970870f07244567","gas":"0x76c0","gasPrice":"0x9184e72a000","value":"0x9184e72a","data":"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"}],"id":1}

Ethereum FoundationのJavaScriptライブラリWeb3.js がこれをわかりやすいようにカスタマイズしてくれて、上記の内容を下記で書くことを可能にする。

cryptoZombies.methods.createRandomZombie(“NiceVitalikkkkkkkkk”)
.send({ from: "0xb60e8dd61c5d32be8058bb8eb970870f07233155", gas: "3000000" })

Web3の導入はいつも使っているnpm install web3で可能。

Npmを使わない別の方法としては縮小された.jsファイルをgithubからダウンロードして、
<script language="javascript" type="text/javascript" src="web3.min.js"></script>

Htmlをベースにしたシンプルな形で確認。

Htmlの中にタグなどでweb3を導入した後、ブロックチェーンに早速アクセスさせる。アクセスのタイミングで Web3プロバイダが必要となる。

Web3プロバイダはノードとの接続を担うもので、Web3プロバイダの設定は、ウェブアプリでのAPIコールの仕組みを思い浮かべるとわかりやすい。

ユーザーであればいつも使用しているノードの接続を代行してくれるサービスInfura apiを使用すれば良い。

infuraをWeb3プロバイダとして使うには、次のようにする。

var web3 = new Web3(new Web3.providers.WebsocketProvider("wss://mainnet.infura.io/ws"));

Wssを使っておくとNFTの作成時、読み込みトラブルもなくシンプルの運用できたのでおすすめ。

ユーザーとしてDAppを使用して、チェーンへの書き込みを行う際には、秘密鍵でトランザクションに署名する方法が必要となる。

この署名は、トランザクションに対してデジタル署名を行うもので、公開鍵/秘密鍵のペアの一つとなる。基本的にはmetamaskのアカウントナンバーは公開鍵であり、この公開鍵を持って他人が自分がデジタル署名をしたものだと確認することができる。自身の署名は秘密鍵で行うが、こちらは公開しない。

our mnemonic is creating an extending private key for deterministic wallets, which is different than a WIF Private Key. An extended private key can deterministicly generate millions of private keys, so that you can regenerate all those same addresses in the future as long as you have the extended private key or your mnemonic seed.

ニーモニックor シードフレーズと秘密鍵の違いは、シートフレーズから秘密鍵の束を生成できるというもの。ニーモニックとシードフレーズの違いが今のところあまり理解できていない。というのも、フレーズを変更したメタマスクできちんとブロックチェーン上での処理ができたため。秘密鍵をインポートするなどするとまた違った状況になるよう。

https://note.com/hiyo2025/n/n3a41e232fe28

Metamaskは自身のアカウントでWeb3.jsを使用しているウェブサイトとやりとりすることが可能な機能であり、コインを中に入れている財布ではない、チェーンから残高を集計して表示しているだけ。なので、自身のチェーン接続を可能にする秘密鍵を管理してくれるものと捉えた方が近い。

このMetamaskが、web3プロバイダ(infraなど)をJavaScriptのweb3ブラウザと融合して、ページからのブロックチェーン接続を助ける。

Metamaskが提供するテンプレートコードをみるとわかりやすい。

window.addEventListener('load', function() {

// Web3がブラウザにインジェクトされているかチェック (Mist/MetaMask)
if (typeof web3 !== 'undefined') {
// Mist/MetaMaskのプロバイダの使用
web3js = new Web3(web3.currentProvider);
} else {
// ユーザーがweb3を持たない場合の対処。
}
// アプリのスタート
startApp()

})

 

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

3

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-Blockchain, code, Metaverse, VR
-, ,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.