Truffle
truffle migrate 在重啟 testrpc 後從第一次遷移重啟
我正在嘗試在 testrpc 上創建某種私有鏈,所以我
testrpc -u 0 -d --db /path/to/db
每次都用來啟動 testrpc。問題是,如果我重新啟動 testrpc(殺死它並重新啟動它)truffle migrate
從頭開始(1_*)重新啟動遷移過程,儘管 testrpc 使用舊的鏈數據庫。有沒有辦法解決這個問題或者這是一個問題?
當您將合約部署到您的私有鏈時。Truffle 儲存鏈的網路 ID,以了解它部署在哪個鏈上。(與目前鏈上的地址)
在 build/contract/yourContract.json 有一個欄位
"networks": { "1": { //live network "events": {}, "links": {}, "address": "0xd77d2a7a728dc7c7c58ac1bcfdfb35934b3ed066" }, "15": { // network id I manually set "events": {}, "links": {}, "address": "0x1c10cbe2e883567eea5de1017f3d21b5b2600abb" }, "1507630284099": { // timestamp generated by testrpc "events": {}, "links": {}, "address": "0xcdc26c0a2e7f43f4ad571373fc68c1a58ed8a25a" } },
您遇到的問題是您沒有使用 testrpc 設置網路 ID。
採用
-i
或--network-id
: 指定 TestRPC 將用於標識自身的網路 ID(預設為目前時間或分叉區塊鏈的網路 ID,如果已配置) doc
testrpc -u 0 -d --db /path/to/db --network-id=15
設置一個 id,這樣當你重新啟動 testrpc 時,你會保留你的數據庫,當你再次執行時,
truffle migrate
它會告訴你Network up to date.