解决升级到EOSIO 2.0以上的版本之后, 部署eosio.bios
或eosio.system
会报错 Error 3070000: WASM Exception \ Error Details: \ env.set_proposed_producers_ex unresolveable
的问题
- v1.8和v2.0中引入的所有协议升级功能首先都需要
PREACTIVATE_FEATURE
激活特殊的协议功能 - 此版本中包含的
eosio.system
和eosio.bios
合同只能在激活WTMSIG_BLOCK_SIGNATURES
共识协议升级后才能部署在EOSIO区块链上
1. 激活特殊协议 PREACTIVATE_FEATURE
: (注意, nodeos需要先开启 eosio::producer_api_plugin
插件)
curl -X POST http://127.0.0.1:8888/v1/producer/schedule_protocol_feature_activations -d '{"protocol_features_to_activate": ["0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd"]}' | jq
2. 部署add-boot-contract分支的 eosio.boot
系统合约
cleos set contract eosio ../../unittests/contracts/eosio.boot -p eosio@active
3. 激活 WTMSIG_BLOCK_SIGNATURES
协议
cleos push transaction '{"delay_sec":0,"max_cpu_usage_ms":0,"actions":[{"account":"eosio","name":"activate","data":{"feature_digest":"299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707"},"authorization":[{"actor":"eosio","permission":"active"}]}]}'
4. 最后查询下PREACTIVATE_FEATURE
和WTMSIG_BLOCK_SIGNATURES
是否已成功激活
curl -X POST http://127.0.0.1:8888/v1/chain/get_activated_protocol_features -d '{}' | jq