EOSIO / eos

An open source smart contract platform
https://developers.eos.io/manuals/eos
MIT License
11.27k stars 3.6k forks source link

Error 3070000: WASM Exception in nodeos v2.0.0 #8372

Closed tekpig closed 4 years ago

tekpig commented 4 years ago

[root@ORACLEDB cleos]# ./cleos set contract eosio /home/oracle/eosio.contracts/build/contracts/eosio.system/ Reading WASM from /home/oracle/eosio.contracts/build/contracts/eosio.system/eosio.system.wasm... Publishing contract... Error 3070000: WASM Exception Error Details: env.preactivate_feature unresolveable pending console output: [root@ORACLEDB cleos]# ./cleos set contract eosio /home/oracle/eosio.contracts/build/contracts/eosio.bios/ Reading WASM from /home/oracle/eosio.contracts/build/contracts/eosio.bios/eosio.bios.wasm... Publishing contract... Error 3070000: WASM Exception Error Details: env.set_proposed_producers_ex unresolveable pending console output:

cleos version: v2.0.0-rc3-0eb83602d37c8a96b8811b636160aee1da94787f-dirty nodeos version: v2.0.0-rc3 eosio.cdt: 1.7.0-rc1 eosio.contract: v1.9.0-rc1

I have tried the way described in Fix bios boot tutorial python script due to changes in 1.8.x and above #8287, but it doesn't work. [root@ORACLEDB build]# curl -X POST http://127.0.0.1:8888/v1/producer/schedule_protocol_feature_activations -d '{"protocol_features_to_activate":["0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd"]}' {"code":404,"message":"Not Found","error":{"code":0,"name":"exception","what":"unspecified","details":[{"message":"Unknown Endpoint","file":"http_plugin.cpp","line_number":341,"method":"handle_http_request"}]}}

spoonincode commented 4 years ago

This surprised me too when I recently encountered it. When EOSIO/eosio.contracts#349 was merged, the bios contract now requires that WTMSig be enabled. Of course that causes a chicken and egg problem because you need a system contract present to enable a protocol feature.

EOSIO/eosio.contracts#363 is a new system contract that is even further stripped down so it can be loaded and active features before loading the bios contract. This hasn't been merged yet but is the intended fix for this problem.

For now, the proper procedure for a new chain is to load an older bios contract that doesn't require WTMSig. Maybe documentation and such needs to be updated?

heifner commented 4 years ago

Note documentation for 2.0 for this is in work here: https://github.com/EOSIO/eos/pull/8328

tekpig commented 4 years ago

@spoonincode @heifner I see.

Thank you for your reply.

spoonincode commented 4 years ago

I'd like it keep this open until at least the doc update is merged

spoonincode commented 4 years ago

Closing this because doc updates were merged to 2.0