I am following BIOS Boot Sequence, at step 1.12

cleos set contract eosio /[path]/eosio.contracts/build/contracts/eosio.system/

I am not able to set the eosio.system contract it will give me error:

Reading WASM from /[path]/eosio.contracts/build/contracts/eosio.system/eosio.system.wasm...
Publishing contract...
error 2020-01-27T09:14:50.680 cleos     main.cpp:4013                 main                 ] Failed with error: deadline 2020-01-27T09:14:50.677 exceeded by 102us  (2)
deadline 2020-01-27T09:14:50.677 exceeded by 102us

I know the execution limit is 30s by default so I'm using -x to change it but:

:~/eosio.contracts/build/contracts$ cleos set contract eosio /[path]/eosio.contracts/build/contracts/eosio.system/ -x 90s
Reading WASM from /[path]/eosio.contracts/build/contracts/eosio.system/eosio.system.wasm...
Publishing contract...
Error 3070000: WASM Exception
Error Details:
env.set_proposed_producers_ex unresolveable
pending console output:

What should I do? Is there something I'm doing wrong?

Also my eosio version is 2.0 My system details are:

H/W path  Device  Class      Description
                  system     Computer
/0                bus        Motherboard
/0/0              memory     11GiB System memory
/0/1              processor  Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
/1        eth0    network    Ethernet interface
/2        eth1    network    Ethernet interface
/3        eth2    network    Ethernet interface
/4        wifi0   network    Ethernet interface
/5        wifi1   network    Ethernet interface
/6        wifi2   network    Ethernet interface
  • Try this command once cleos set contract eosio CONTRACTS_DIR/build/contracts/eosio.system --abi eosio.system.abi -p eosio@active. Need to check this once – Vipulw Jan 27 '20 at 11:23
  • I'm getting this error: Publishing contract... error 2020-01-27T11:29:47.912 cleos main.cpp:4013 main ] Failed with error: deadline 2020-01-27T11:29:47.909 exceeded by 37us (2) deadline 2020-01-27T11:29:47.909 exceeded by 37us @Vipulw – AditiB Jan 27 '20 at 11:30
  • it seems like version mismatch between the system contract and nodeos. set_proposed_producers function was renamed from set_active_producers, your system contract uses set_proposed_producers while nodeos doesn't provide it try recompiling everything from the same version of source code – Vipulw Jan 27 '20 at 12:21
  • I have the same issue and did exactly what you mentioned, but still doesn't work. curl -X POST -d '{}' | jq % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 5867 100 5865 100 2 6859k 2395 --:--:-- --:--:-- --:--:-- 5727k [ { "feature_digest": "0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd", "subjective_restrictions": { "enabled": true, "preactivation_required": false, "earliest_allowed_activation_time": "1970-01-01T00:00:00.000" }, "description_digest": "6 – michael Sep 10 '20 at 6:09

This got me as well, it's related to the new WTMSIG_BLOCK_SIGNATURES in eosio 2.0 and the requirement to pre-activate the new eosio chain. There is a pull request which includes a simplified version of the eosio.bios contract called eosio.boot which once deployed gives you the ability to pre-activate and then activate the necessary features. Details can be found here.

Here are the steps I followed:

First clone the branch with the new eosio.boot contract

git clone --branch add-boot-contract https://github.com/EOSIO/eosio.contracts.git

Then run the build script


You should now have an eosio.boot directory which includes the "eosio.boot.wasm" and "eosio.boot.abi" which can be deployed with the cleos set contract command above.

You then enable the PREACTIVATE_FEATURE by running

curl -X POST -d '{}' | jq

This output something like this:


  "feature_digest": "0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd",
  "subjective_restrictions": {
    "enabled": true,
    "preactivation_required": false,
    "earliest_allowed_activation_time": "1970-01-01T00:00:00.000"
  "description_digest": "64fe7df32e9b86be2b296b3f81dfd527f84e82b98e363bc97e40bc7a83733310",
  "dependencies": [],
  "protocol_feature_type": "builtin",
  "specification": [
      "name": "builtin_feature_codename",
      "value": "PREACTIVATE_FEATURE"

Take the feature digest and run it on your producing node.

curl -X POST -d '{"protocol_features_to_activate": ["0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd"]}' | jq

I didn't set any timers, left everything at defaults.

Now you have the PREACTIVATE_FEATURE set on the chain, you can use cleos to activate the WTMSIG_BLOCK_SIGNATURES.

Get a list of the supported features and the digests by running the same command as above, finding the one that relates to WTMSIG, then a command similar to this:

cleos -u push transaction '{"delay_sec":0,"max_cpu_usage_ms":0,"actions":[{"account":"eosio","name":"activate","data":{"feature_digest":"299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707"},"authorization":[{"actor":"eosio","permission":"active"}]}]}'

I then loaded all the eosio features and checked them using

curl -X POST -d '{}' | jq

All going well, you should now be able to load the eosio.system contract. In my case, I loaded the eosio.bios contract which was successful, hopefully, it works for you.

More info on the activation can be found here.

  • What step is not working for you? I've never seen this message before. – Scott Owen Jan 28 '20 at 9:15
  • Error for activate the WTMSIG_BLOCK_SIGNATURES: Error 3010010: Invalid packed transaction Error Details: Failed to deserialize data for eosio:activate Failed to deserialize variant – AditiB Jan 28 '20 at 9:40
  • How can I use actions to activate the WTMSIG_BLOCK_SIGNATURES, as no contract has been deployed to eosio yet. – AditiB Jan 28 '20 at 10:03
  • Did you try deploying the eosio.boot contract in the "add-boot-contract" branch as above? I did this before pre-activation, then was able to push txn to activate WTMSIG. – Scott Owen Jan 28 '20 at 11:33
  • 1
    I had to use cleos set contract eosio [path]/eosio.contracts/build/contracts/eosio.system/ -x 80s -p eosio@active. It worked. Thank you so much. @ScottOwen – AditiB Jan 28 '20 at 12:04

I am having this exact issue with the boot sequence, I even tried the steps from the answer marked as a solution in this question, and still no luck.

I created a small example of the BIOS script that we're trying to apply at https://github.com/eoscostarica/eos-test The steps to put this project to work are in the readme, the version of the bios script that's on BASH is not complete, I have it until the point where it fails.

Also, I provided a base docker image for running the bios-tutorial example that lives currently under the GH repo for eosio, which gives the exact same error.

Has anyone been able to make this work with 2.0.x?

  • 1
    Did you enable PREACTIVATE_FEATURE and WTMSIG_BLOCK_SIGNATURES. This might help "eosio.stackexchange.com/questions/5241/…" Also, I had the same error but it works somewhere although it shows the error but again when you try it shows "the exact code is already deployed". Don't know the exact reason but I did set up 3 Private Blockchains & was stuck on the same step but it works after hitting this command several times "cleos set contract eosio [path]/eosio.contracts/build/contracts/eosio.system/ -x 80s -p eosio@active" – AditiB Feb 20 '20 at 5:36
  • My all work was on 2.0.X itself. – AditiB Feb 20 '20 at 5:38
  • I sent the commands to activate both features and tried to deploy the old version of the contracts, giving me that same error but I'll try to do as you say, to keep trying to deploy the system contract till it works (or it says it's already been deployed) Thanks! – Daniel J. Prado Feb 21 '20 at 12:08
  • You're welcome. Just make sure that both features are activated. – AditiB Feb 24 '20 at 6:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.