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

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

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

4

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

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-Blockchain, code, Metaverse, VR
-, ,

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