アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【仮想通貨UbuntuDebian
Ubuntu Server 21.10でイーサリアムブロックチェーン【その7】
POSTED BY
2023-03-30

Ubuntu Server 21.10でイーサリアムブロックチェーン【その1】
Ubuntu Server 21.10でイーサリアムブロックチェーン【その2】
Ubuntu Server 21.10でイーサリアムブロックチェーン【その3】
Ubuntu Server 21.10でイーサリアムブロックチェーン【その4】
Ubuntu Server 21.10でイーサリアムブロックチェーン【その5】
Ubuntu Server 21.10でイーサリアムブロックチェーン【その6】

続きです。truffle developだと、ローカルのEVMブロックチェーンが立ち上がるが、ほかにも、ローカルのgethで自分で立ち上げているチェーンや、外部のパブリックチェーンに接続することもできる。
これは、truffle-config.jsのnetworksの項を編集して切り替える。

パターンA:truffle開発テストEVMブロックチェーンで起動する

truffle-config.jsはデフォルトから何もいじらずに

truffle develop

パターンB:ローカルPCのgethで立ち上げた自前ブロックチェーンに接続する

genesis.jsonでchainIdを1342、--http.port 8777でgethでチェーン起動しており、接続後のトランザクション送り元をアカウント2(0x1a8355a4ae7465f7bf867a1a0ea88932b1c19891)からにしたい場合

truffle-config.js

networks: {
    advanced: {
        port: 8777,             // Custom port
        network_id: 1342,       // Custom network
        gas: 8500000,           // Gas sent with each transaction (default: ~6700000)
        gasPrice: 20000000000,  // 20 gwei (in wei) (default: 100 gwei)
        from: 0x1a8355a4ae7465f7bf867a1a0ea88932b1c19891,        // Account to send txs from (default: accounts[0])
        websocket: true        // Enable EventEmitter interface for web3 (default: false)
    },

などとして、

truffle console --network advanced

パターンC:外部のパブリックブロックチェーンRinkebyに接続する

本物ネットワークに接続するには事前準備が必要です。

METAMASKのインストール

まず、Chromeブラウザプラグインで、アカウントの一元管理が出来るウォレットMETAMASKが必要です。
OpenSeaで画像をNFT資産として販売するにはの、
【4、仮想通貨ウオレットプラグインMETAMASKをChrome拡張機能でインストール】の項を参照してMETAMASKをインストールしておきます。

Rinkebyテストネットワークに接続

METAMASKをクリックし、「表示・非表示」テストネットワークを「表示」します。すると、メインネットだけでなく、他のパブリックテストネットも選択できるようになります。
ここでは、OpenSea(testnets.opensea.io)も対応しているRinkebyを選択します。

選択して「アカウントを作成」すれば、すぐにイーサリアムアドレスが発行されます。右のメニューを選択して「アカウントをEtherscanで表示」してみましょう。何かやると、ここにトランザクションログが貯まっていくはずです。

同じように、もう一度「アカウントを作成」して、Account 2も作成しておきます。別アカウントを切り替えることで、NFTを発行→他人として買う、のようなシミュレーションを自己完結で行うことができます。

ETHをもらう

テストをするにはETHが必要なので、いくらかもらう必要があります。

https://faucets.chain.link/rinkeby

にアクセスし、右上のConnect Account(Wallet METAMASK)をクリックして、METAMASKとサイトを接続させます。METAMASKの認証を許可します。

すると「Wallet Address」が自動で埋まるので、私はロボットではありません、でSend requestすると、0.1ETHもらえます。METAMASKのアカウントを切り替えて、Account 1, 2、両方でもらっておくと良い。

infura.ioに登録してRinkebyのAPIキーを取得する

https://infura.io/

にユーザ登録、CREATE NEW PROJECTで、PRODUCT: Ethereum、PROJECT NAME: TEST-ETH などとして作成。

作成したプロジェクトのSETTINGS→KEYS→ENDPOINTS→RINKEBY を選択。

https://rinkeby.infura.io/v3/aaaaaabbbbbcccccdddddd

のようなこれが、APIキーになる。

truffle-hdwallet-providerのインストール

無ければ入れておく。

npm install truffle-hdwallet-provider

ここまで準備できたら、truffle-config.js

const HDWalletProvider = require('truffle-hdwallet-provider');
const mnemonic = "METAMASK登録時に発行されたリカバリーフレーズ";
networks: {
    rinkeby: {
        provider: () => new HDWalletProvider(mnemonic, `https://rinkeby.infura.io/v3/aaaaaabbbbbcccccdddddd`),
        network_id: "*",     // Rinkeby's id
        gas: 5500000,        // Rinkeby has a lower block limit than mainnet
        confirmations: 2,    // # of confs to wait between deployments. (default: 0)
        timeoutBlocks: 200,  // # of blocks before a deployment times out  (minimum/default: 50)
        skipDryRun: true,     // Skip dry run before migrations? (default: false for public nets )
        from: トランザクション送り元アドレス(METAMASKのAccount1か2のアドレス),        // Account to send txs from
    },

などとして、

truffle console --network rinkeby

Ubuntu Server 21.10でイーサリアムブロックチェーン【その8】

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】