ウェブスリースマートコントラクトをGanacheに配備したDApp開発テスト環境を建てる方法

ウェブスリーを開発する時に、テスト仕事が不可欠だと思います。開発しているスマートコントラクトとDappの効能は運行できないものかと知っていますから。成功的にテストする前に、オンラインで登場するわけにはいけない。なので、DAppの開発テストのために、この文章ではPython利用でウェブスリースマートコントラクトをGanacheに配備したテスト環境を建てる方法をシャアしております。

ウェブスリースマートコントラクト

ウェブスリーを開発する時に、テスト仕事が不可欠だと思います。開発しているスマートコントラクトとDappの効能は運行できないものかと知っていますから。成功的にテストする前に、オンラインで登場するわけにはいけない。なので、DAppの開発テストのために、この文章ではPython利用でウェブスリースマートコントラクトをGanacheに配備したテスト環境を建てる方法をシャアしております。

ウェブスリースマートコントラクトをイーサリアムブロックチェーンみたいなGanacheに配備する材料は以下でございます:

Python3, Ganache, Solcx, Solidity, Web3, Json, os, dotenv

目次

SolcxインストールとSolidityファイルをJsonfiyする

まずには、スマートコントラクト作りとブロックチェーン上にの運行されたら、例えばイーサリアムブロックチェーンに、他の一つのプログラミング言語が必要です。この文章ではSolidityを使って配備するんですけど、他の文章でSolidityに関するトピックが丁寧に説明します。もしEasy2Digitalが開発したSolidityスマートコンクトラクトが興味があれば、”ウェブスリー1”を追加してニュースレターをご申し込みください。申し込みを受け取り次第、すぐにおスクリプトを添付してお送りします。

Solidityに関してPython環境でSolcxモジュールを使ってスマートコンクトラクトをコンパイルできます。

ステップ1:SolcxインストールとSoliditファイルを開いてコンパイルする

マックブックのインストール方法を上げる。ターミナルにSolcxインストールのコードは以下でございます:

pip install py-solc-x

次には, Solcxと必要なメソッドをPythonスクリプトにインポートしながら、使用されているSolidityスマートコントラクトも開かれます。

From solcx import compile_standard

With open(“./your solidity file name.sol”, “r”) as file:

      Single_contract_file = file.read()

最後には、compile_standardメソッドを通して、一つの新変数に現在使用されているsolファイル中のメソッドと変数をコンパイルする。

compiled_sol = compile_standard(

    {

        "language": "Solidity",

        "sources": {"your file name.sol": {"content": ;single_contract_file}},

        "settings": {

            "outputSelection": {

                "*": {"*": ["abi", "metadata", "evm.bytecode", "evm.sourceMap"]}

ステップ2:コンパイルしたファイルをJsonify化していきます

スマートコントラクト中のデータを読み込んで互いに応じ会うことに便利化するために、コンパイルしたファイルをJsonify化することができます。以下はコードたちでございます:

with open("compiled_solCode.json", "w") as file:

     json.dump(compiled_sol, file)

ウェブスリースマートコントラクトー:バイドコードとABI

イーサリアムなんてのブロックチェーンネットと互いに応じ会うとか、アプリ間のコミュニケーションすることに関してはバイドコードとABIという二種類のデータが大切です。

バイトコード

バイドコードとはバイナリ形式でパソコンにの指示と命令を含まれるというデータ種類です。毎行のコードたちがあらゆる改めて書かれてオペコードに分解して行きます。だから、サバーおよびパソコンが何かの命令を運行するかわかることができます。

イーサリアムの世界中で,バイドコードが普段にイーサリアムブロックチェーン上に配備されます。そして、イーサリアムブロックチェーンに配備してメータマスクなんでのブラウザベースのウオレットを使用しているトランザクションを確認する時には、実にブロックチェーン上に配備されたバイドコードを見えてきます。

# Get Bytecode

Bytecode = compiled_sol['contracts']['easy2digital.sol']['SingleContract']["evm"]["bytecode"]["object"]

ABI

ABIとはアプリーバイナリインターフェースという略語です。スマートコントラクトに利用可能のメソッドと変数を定義される。そして、これらのメソッドと変数を使ってスマートコントラクトに応じ会うことができます。

さって、それらのインターフェースを表現することに関しては、標準化の方法がひとつ要られてから、何でものプログラミングを使われてそれらのスマートコントラクトに応じ会われる。

ABIがある限り、何でものDAppが何でものプログラミング使用でスマートコントラクトにコミュニケーションできる。

以下のコードはeasy2digita.solファイルでABIメソッドとか、変数とか、値とかを生成する。

# Get ABI

getABI = compiled_sol['contracts']['SimpleStorage.sol']['SimpleStorage']['abi']

Python環境でのウェブスリーモジュールインストールとGanacheを繋がり

メソッドと変数を読み込めるバイドコードとABI利用可能が準備できた時には、Python環境でウェブスリーモジュールインストールの時間です。

ターミナルに、以下のコードと命令を入力してください

pip install web3

Pythonスクリプトで、このモジュールをインポートする必要でございます。

from web3 import Web3

Ganache

DApp開発している時間にはテストの環境が要られます。一般的には本物のイーサリアムブロックチェーン上に配備する前に、このテスト環境にコード運行と効能テスト、暗号通貨ウオレッド繋がりに関する仕事をやるはずです。なので、Ganacheが登場する。

ウェブスリー開発者にとっては、Ganacheが開発テストの仕事を手軽にさせて容易にさせる方面が素晴らしいと思います。このテスト範囲が本文暗号通貨ウオレッドを繋がることも含まれます。

Ganacheインストール方法が超簡単です。完成後、ファストプロジェクト開始を選択して視覚的なETHネットワークのダッシュボードがきます。ダッシュボードに、

Ganacheインストール方法が超簡単です。完成後、ファストプロジェクト開始を選択して視覚的なETHネットワークのダッシュボードがきます。ダッシュボードに、Pythonスクリプトで使用必要な要素がいくつかあります。以下は詳しい要素です。

  • HTTP URL
  • チェーン ID
  • 視覚的な暗号通貨ウオレッドアドレス
  • ウオレッド秘密鍵

Ganacheが時々バグがあるだけあって、提供されるIDが機能できない場合があるかねないんですから、提供されるIDの代わりに、1337を試してください。役に立つはずです。

以下はウェブスリーモジュールがGanacheに繋がるコードたちでございます。

w3 = Web3(Web3.HTTPProvider("your ganache HTTP URL"))

gasPrice = w3.eth.gas_price

chain_id = "your ganache chain id"

my_address = "select a key and copy and paste the address here"

暗号通貨ウェレット秘密鍵を隠す

実際には、Ganacheがイーサリアムブロックチェーン配備と繋がりのことを真似するんです。真似した暗号通貨秘密鍵もチェーンIDも提供されます。でも、メータマスクの例をあげたら、暗号通貨秘密鍵が重要ですから、いつでも開示することがだめです。全ての資金を失う危険性があるかねないんですから。

もし暗号通貨秘密鍵を隠したければ、まずには一つの.envファイルを作る必要です。以下は.envファイルにコードの例でございます

export PRIVATE_KEY="0x + ウオレットの暗号通貨秘密鍵"

次には、.envと同じなフォルダに.gitinoreファイルも加える必要です。

最後には、os, dotenvモジュールをインポートしてgetenv()メソッドで.envファイルにの変数を読み込むことができます。

export PRIVATE_KEY="0x + your private key"

import os

from dotenv import load_dotenv

private_key = os.getenv("PRIVATE_KEY")

イーサリアムブロックチェーンを真似したGanache上にスマートコントラクトを作る

前述によって、スマートコントラクト生成のプログラミング言葉がSolidityです。でも、Solidityのロジックをブロックチェーンにどうやって配備するんですか?答えはウェブスリーモジュールから提供されるcontract()というメソッドを利用可能です。

singleContractA = w3.eth.contract(abi=getABI, bytecode=Bytecode)

もしトランサクションIDのデータが必要であれば、以下のコードを利用することができます。

getTransactionCount()

nonceA = w3.eth.getTransactionCount(my_address)

トランザクション機能を活性化するー建てる、署名、送信と確認

ウェブスリーの核価値が中央銀行からトランサクションと支払処理を分散化です。今から、ビジネス自分と取り引きたちがもし両方が暗号通貨を使い限り、もう伝統的な中央銀行に依頼することも必要です。

従って、ブロックチェーンと対話する重要な部分の一つはトランサクションのプロセスを構築することです。たとえどのようなビジネスを運営しても、基本的には以下の四つのトランサクションです。

# トランサクションを建てること

transactionA = singleContractA.constructor().buildTransaction(

{"gasPrice": gasPrice, "chainId": int(chain_id), "from": my_address, "nonce": nonceA})

# トランサクションを署名すること

signedTransaction = w3.eth.account.sign_transaction(

transactionA, private_key=private_key)

# トランサクションを送信すること

transactionHash = w3.eth.send_raw_transaction(signedTransaction.rawTransaction)

# トランサクション処理中と確認すること

transactionReceipt = w3.eth.wait_for_transaction_receipt(transactionHash)

現在コントラクト上に詳しい値を加えて更新する

さらに、既存のトラザクションを更新して、特定の値を追加することもできます。

print("Updating the contract.....")
contractTransaction = singleContractB.functions.store(75).buildTransaction(
{"gasPrice": gasPrice, "chainId": int(chain_id), "from": my_address, "nonce": nonceA + 1})
signedcontractTransaction = w3.eth.account.sign_transaction(
contractTransaction, private_key=private_key)
# Send the transaction
print("Deploying the contract.....")
sendcontractTransaction = w3.eth.send_raw_transaction(signedcontractTransaction.rawTransaction)
# Wait for the pending and confirmed transaction response
print("Deployed!!!")
transactionReceipt = w3.eth.wait_for_transaction_receipt(sendcontractTransaction)
print(singleContractB.functions.retrieve().call())

ウェブスリースマートコントラクトをGanacheに配備する完全バッジョんのスクリプト

もしウェブスリースマートコントラクトをGanacheに配備したDApp開発テスト環境を建てる方法が興味があったら、”ウェブスリー1”を追加してニュースレターをご申し込みください。申し込みを受け取り次第、すぐにおスクリプトを添付してお送りします。

ウェブスリースマートコントラクトをGanacheに配備したDApp開発テスト環境を建てる方法という文章を読むタイムに楽しんでいただければ嬉しいです。もしできれば、以下の選択中には一つ、二つを選んでEasy2Digitalチャネルを応援したら、誠にありがとうございます。

  1. 幾つでもいい、PayPalを通して寄付してください。(paypal.me/Easy2digital)
  2. Easy2DigitalのYoutubeチャネルを登録してください。(Easy2Digital Youtube channel.)
  3. #easy2digitalのハッシュタグを付けてソーシャルネットワークでこの文章をシェアしてください
  4. Easy2Digitalコンテンツの更新と注文割引コードを受け取るように、ニュースレターをご申し込みください

よくある質問:

Q1: Ganacheの製品はどのように使われますか?

A: Ganacheの製品は、デザートやお菓子作りに使用されます。

Q2: Ganacheの製品はどのように保存すればいいですか?

A: Ganacheの製品は、冷蔵庫で保存することをおすすめします。

Q3: Ganacheの製品はアレルギーの人でも食べられますか?

A: Ganacheの製品にはアレルギー物質が含まれる場合がありますので、アレルギーの方は注意が必要です。

Q4: Ganacheの製品を使ったレシピはありますか?

A: はい、Ganacheの製品を使ったレシピ集が公式ウェブサイトに掲載されています。

Q5: Ganacheの製品はどのように購入できますか?

A: Ganacheの製品はオンラインストアまたは一部の専門店で購入できます。

Q6: Ganacheの製品はどのような味ですか?

A: Ganacheの製品は濃厚でなめらかなチョコレートの味が特徴です。

Q7: Ganacheの製品はオーガニックですか?

A: Ganacheの製品の一部はオーガニック原料を使用していますが、すべての製品がオーガニックではありません。

Q8: Ganacheの製品は融けやすいですか?

A: Ganacheの製品は温度によって融ける性質がありますので、高温や直射日光を避けて保管してください。

Q9: Ganacheの製品はギフトに適していますか?

A: はい、Ganacheの製品は高品質なチョコレートとしてギフトに最適です。

Q10: Ganacheの製品は国際配送されますか?

A: はい、Ganacheの製品は一部の国々への国際配送も行っております。