我的部落格即將入駐「雲棲社群」,誠邀技術同仁一同入駐。
truffle裡面有幾個例子還是不錯的,也看到很多人進行翻譯,我這裡就不翻譯啦,介紹安裝和部署遇到的坑。
坑一:petshop這個案例的坑在於src/index.html裡面有個jquery.min.js的引用,被偉大的長城防火牆給牆了,導致載入報錯。
坑二:沒有介紹如何轉以太幣,勉強算坑吧。
1、安裝前提條件
git
使用root進行部署
2、搭建私有鏈
rpc server :
network id:8888
3、建立工程
mkdir pet-shop-tutorial
cd pet-shop-tutorial
truffle unbox pet-shop
4、**修改(包括合約**、測試合約**和前端**)
5、配置工程檔案
修改工程truffle配置檔案truffle.js,檔案路徑/home/jack/demo/pet-shop-tutorial
vi truffle.js
6、配置編譯檔案
在目錄/home/jack/demo/pet-shop-tutorial/migrations下執行以下命令
vi 2_deploy_contracts.js
修改為以下內容
var adoption = artifacts.require("adoption");
module.exports = function(deployer) ;
7、編譯合約
在目錄/home/jack/demo/pet-shop-tutorial下執行以下命令
truffle compile
8、部署合約
在目錄/home/jack/demo/pet-shop-tutorial下執行以下命令,truffle會根據truffle.js檔案配置的網路把合約部署到上面
truffle migrate
9、部署測試合約
在目錄/home/jack/demo/pet-shop-tutorial下執行以下命令
truffle test
測試結果如下,表示合約部署成功:
using network 'development'.
compiling ./contracts/adoption.sol...
compiling ./test/testadoption.sol...
compiling truffle/assert.sol...
compiling truffle/deployedaddresses.sol...
testadoption
✓ testusercanadoptpet (91ms)
✓ testgetadopteraddressbypetid (70ms)
✓ testgetadopteraddressbypetidinarray (89ms)
3 passing (670ms)
10、安裝metamask錢包並建立賬戶
可以參考之前安裝metamask錢包文章:
設定metamask錢包鏈結到私有鏈。
11、轉以太幣到metamask錢包賬戶
從ganache建立的私有鏈第二個賬戶中轉10個以太幣給metamask錢包內賬戶。
在目錄/home/jack/demo/pet-shop-tutorial下執行以下命令,進入truffle互動命令列
truffle console
先複製metamask賬戶位址 0xaffdc60deca1df8b61e5297dbccca3d6d80820f7
修改以下賬戶位址為你的metamask賬戶位址 ,在互動命令列下,執行以下命令
12、執行專案
在目錄/home/jack/demo/pet-shop-tutorial下執行以下命令
利用truffle框架構建基於以太坊的Dapp過程
本案例在ubuntu下測試的。1 mkdir project1 cd project1 truffle init 以上建立並初始化乙個truffle專案,成功則顯示如下。2 將已經建立好的合約放在project1 contracts 目錄下,即在此目錄下進行智慧型合約的編寫 3 在migration...
基於PEview分析PE檔案(4 4)
從圖3可以看出,pe檔案的nt頭之後就是節 section 頭,每個節頭的大小是40位元組。在 4.2 image file header 中提到,本pe檔案包含9個節,可以從圖3中找到這9個節對應的節頭。表1列出了各節頭的對應節的內容。表1 節頭對應節的內容 節名內容 節名內容 bss 未初始化的...
8 4 8 使用truffle的操作台
有時,為了進行測試和除錯,需要與合約進行直接互動或者手動執行交易。truffle通過互動操作台提供了乙個簡便的辦法 在其中合約可用且隨時可用。要開啟操作台,請執行如下命令 操作台根據專案配置連線到乙個以太坊節點。前面的命令還用 network選項指定要連線到的特定節點。操作台的功能如下 可以在操作台...