TransWikia.com

How to activate the WTMSIG_BLOCK_SIGNATURES protocol feature?

EOS.IO Asked by AditiB on August 20, 2021

I used :

$ curl --request POST --url http://127.0.0.1:8888/v1/producer/schedule_protocol_feature_activations -d '{"protocol_features_to_activate": ["299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707"]}'
{"code":500,"message":"Internal Service Error","error":{"code":3250000,"name":"protocol_feature_exception","what":"Protocol feature exception","details":[{"message":"protocol feature requires preactivation: 299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707","file":"producer_plugin.cpp","line_number":1191,"method":"schedule_protocol_feature_activations"}]}}

Also, I tried:

$ cleos -u http://127.0.0.1:8888 push transaction '{"delay_sec":0,"max_cpu_usage_ms":0,"actions":[{"account":"eosio","name":"activate","data":{"feature_digest":"299dcb6af692324b899b39f16d5a530a33062804e41f09dc97e9f156b4476707"},"authorization":[{"actor":"eosio","permission":"active"}]}]}'
Error 3010010: Invalid packed transaction
Ensure that your packed transaction JSON follows the following format!
{
  "signatures" : [ "signature" ],
  "compression" : enum("none", "zlib"),
  "packed_context_free_data" : "bytes",
  "packed_trx" : "bytes";
}
e.g.
{
  "signatures" : [ "SIG_K1_Jze4m1ZHQ4UjuHpBcX6uHPN4Xyggv52raQMTBZJghzDLepaPcSGCNYTxaP2NiaF4yRF5RaYwqsQYAwBwFtfuTJr34Z5GJX" ],
  "compression" : "none",
  "packed_context_free_data" : "6c36a25a00002602626c5e7f0000000000010000001e4d75af460000000000a53176010000000000ea305500000000a8ed3232180000001e4d75af4680969800000000000443555200000000",
  "packed_trx" : "6c36a25a00002602626c5e7f0000000000010000001e4d75af460000000000a53176010000000000ea305500000000a8ed3232180000001e4d75af4680969800000000000443555200000000"
}
Error Details:
Failed to deserialize data for eosio:activate
Failed to deserialize variant

I need to activate this because :

The eosio.system contract and eosio.bios contract can now only be
deployed on an EOSIO chain that has activated the
WTMSIG_BLOCK_SIGNATURES protocol feature.

But I’m not sure about the second approach as no contract has been deployed to eosio, how is it using action?

How can I activate it?

Any guidance is welcome.
Thank you

One Answer

  1. git clone --branch add-boot-contract https://github.com/EOSIO/eosio.contracts.git
  2. $./[path]/eosio.contracts/build.sh
  3. Enable the PREACTIVATE_FEATURE by running:

curl -X POST http://127.0.0.1:8888/v1/producer/schedule_protocol_feature_activations -d '{"protocol_features_to_activate": ["0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd"]}' | jq If this isn't working, check this producer_plugin

  1. Deploy eosio.boot contract:

cleos set contract eosio [path]/eosio.contracts/build/contracts/eosio.boot -p eosio@active

  1. Activate WTMSIG_BLOCK_SIGNATURES protocol feature using:

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

If this doesn't work try swapping order of step 3 and 4. Refer this for more.

Correct answer by AditiB on August 20, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP