⑴ 詳解 Truffle Migrations(遷移)- 合約部署不再困惑
遷移(Migrations)是開發人員自動化部署數據及其支持結構的一套方法,它對於管理新軟體版本的部署非常有用,不僅限於區塊鏈開發。Truffle Migrations允許我們將合約推送到以太坊鏈上,無論是本地網路、測試網路還是主網,並且可以與其它合約鏈接或使用初始化合約數據。
遷移(Migrations)的亮點在於對區塊鏈上合約地址的管理。Truffle幾乎完全抽象化了這項乏味的工作。准備階段,確保安裝了Truffle Framework 和 Ganache CLI。初始化Truffle項目,使用`truffle init`命令。創建項目目錄,運行`truffle init`,輸出類似於初始化文件夾結構。在`contracts`目錄下創建合約文件,如`Storage.sol`。
初始遷移文件和部署規則:運行`truffle init`時,生成了`Migrations.sol`和`1_initial_migration.js`。初始遷移合約一般不需要修改,主要跟蹤部署在區塊鏈上的合約地址。修改`Migrations.sol`可以實現高級遷移管理,但需要保留初始化介面。`1_initial_migration.js`文件說明如何將`Migrations.sol`合約部署到對應的鏈上。文件名的序號表示運行遷移文件的順序,用於追蹤部署歷史。
遷移(Migrations)管理數據:創建遷移文件,如`2_deploy_contracts.js`,用於部署合約。遷移文件讀取合約的artifacts(構建),這些構建文件描述了合約部署的網路、地址及函數等信息。artifacts的數據存儲在`build`目錄下的`Migrations.json`和`Storage.json`文件中。使用`truffle compile`命令編譯合約後,`build`目錄將生成這些文件。
編寫遷移文件:創建遷移文件,例如`2_deploy_contracts.js`,描述如何部署合約。運行`truffle migrate`命令執行遷移腳本。為了運行遷移腳本,啟動本地模擬區塊鏈環境。配置`truffle-config.js`文件以部署到本地網路。運行`truffle migrate`後,合約將被遷移到網路,並在構建目錄的`Storage.json`文件中保存構件信息。
部署多合約:遷移文件允許部署多個合約並調用合約函數,實現復雜邏輯。添加新合約`InfoManager.sol`,依賴於`Storage`合約。修改遷移文件`2_deploy_contracts.js`,使其可以部署`InfoManager`。部署語法與使用`deploy(...)`方法返回的Promise。在部署後調用自定義函數。遷移文件還可以根據網路進行部署,實現開發與上線的差異性。
選擇賬號和鏈接庫:遷移文件中可以公開賬號參數,通過`deployer.link(...)`鏈接已存在的庫。通過這些技術,大部分區塊鏈部署工作實現自動化,減少了開發去中心化應用程序的重復工作。
使用Truffle Migrations,可以高效地管理合約部署,減少開發過程中的繁瑣步驟,提高開發效率。