A. 長安鏈--智能合約的開發、編譯、安裝、調用、查詢(二)
官方參考文檔: https://docs.chainmaker.org.cn/dev/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6.html
學習智能合約的鄭喚開發,通常需要有Demo來學習API的使用方式,項目組織方式。在長安鏈學習過程中也是如此,所以第一步獲取合約模塊。
1.1) 拉取鏡像: docker pull chainmakerofficial/chainmaker-go-contract:1.1.1
長安鏈為我們提供合約開發的鏡像,內部包含合約模板。
1.2) 啟動並進入容器: docker run -it --name chainmaker-go-contract -v ${PWD}:/home chainmakerofficial/chainmaker-go-contract:1.1.1 bash
啟動 chainmaker-go-contract 容器並進入,同時將當前目錄掛載到滾睜容器的 /home 目錄下
1.3) 解壓並分析合約模板
cp /home
tar xzvf contract_go_template.tar.gz
按照大叢歲官方參考文檔方式 在 chainmaker-go-contract 容器中執行 ./build.sh
生成main.wasm文件
2)執行TestUserContractHash Test方法
這里使用的是默認配置文件,如果需要改變埠、連接數、TLS使能等等,需要修改 chainmaker-sdk-go/testdata/sdk_config.yml
B. solidity 智能合約(3):使用truffle編譯部署及測試合約
先找源碼敲一遍,跑起來,後面慢慢講怎麼用solidity編寫以太坊智能合約。
這個文件編寫在 contracts 目錄下
這個文件在 migrations 目錄下
這個文件可以創建一個 test 目錄,然後放進去,我這里直接放在了根目錄,不太規范。
要編譯Truffle項目里的合約,請切換到項目工程所在根目錄,然後在終端中鍵入以下內容:
首次運行時,將編譯所有合約。 在後續運行中,Truffle將僅編譯自上次編譯以來有更改的合約。如果我們想覆蓋此行為,可以使用 --all 選項運行上面的命令。
編譯的目標文件 Artifacts 將放在 build/contracts/ 目錄中,相對於項目根目錄(如果該目錄不存在,將創建該目錄。)
這些 Artifacts 是Truffle內部工作的組成部分,它們在成功部署應用程序中起著重要作用。 不要去編輯這些文件,因為這些文件將被合約編譯和部署覆蓋。
編譯成功後
遷移腳本(JavaScript文件)可幫助我們將合約部署到以太坊網路。 這些文件負責暫存我們的部署任務,並且假設我們的部署需求會隨著時間的推移而發生變化。 隨著項目的發展,我們將創建新的遷移腳本,以進一步推動區塊鏈的發展。 先前運行的部署記錄通過特殊的 Migrations 遷移合約記錄在鏈上,詳細信息如下。
部署命令
要運行部署,請運行以下命令:
這將部署在項目的 migrations 目錄中的所有遷移文件。 最簡單的遷移只是一組管理部署腳本。 如果我們的遷移先前已成功運行,則 truffle migrate 將從上次運行的遷移開始執行,僅運行新創建的遷移。 如果不存在新的遷移, truffle migrate 將不會執行任何操作。 我們可以使用 --reset 選項從頭開始運行所有遷移。 對於本地測試,確保在執行 migrate 之前安裝並運行了 Ganache等 測試區塊鏈。
測試腳本中輸入數值 100 ,取出的數值為 64 (這個值是16進制格式,轉為十進制就是 100 ).