Create a file prepare_update_conf.yaml:
---
refresh_contract_parameters:
ergo_tree_bytes: 1016043c040004000e20c7e3691bce1ca08125c9ecb0960d4d71c8efd4db876910620864db701d8cc99c01000502010105000400040004020402040204040400040a05c8010e20bf1c100d3fa68b9eb486d6032d4b2e3d6abe3952faeb8a999877e6cf517b337e0400040404020408d80ed60199a37300d602b2a4730100d603b5a4d901036395e6c672030605eded928cc77203017201938cb2db6308720373020001730393e4c672030504e4c6720205047304d604b17203d605b0720386027305860273067307d901053c413d0563d803d607e4c68c7205020605d6088c720501d6098c720802860272078602ed8c720901908c72080172079a8c7209027207d6068c720502d6078c720501d608db63087202d609b27208730800d60ab2a5730900d60bdb6308720ad60cb2720b730a00d60db27208730b00d60eb2a5730c00ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02cde4c6b27203e4e30004000407d18f8cc77202017201d1927204730dd18c720601d190997207e4c6b27203730e0006059d9c72077e730f057310d1938c7209017311d193b2720b7312007209d1938c720c018c720d01d1928c720c02998c720d027e9c7204731305d193b1720bb17208d193e4c6720a04059d8c7206027e720405d193e4c6720a05049ae4c6720205047314d193c2720ac27202d192c1720ac17202d1928cc7720a0199a37315d193db6308720edb6308a7d193c2720ec2a7d192c1720ec1a7
pool_nft_index: 17
oracle_token_id_index: 3
min_data_points_index: 13
min_data_points: 2
buffer_length_index: 21
buffer_length: 4
max_deviation_percent_index: 15
max_deviation_percent: 5
epoch_length_index: 0
epoch_length: 20
pool_contract_parameters:
ergo_tree_bytes: 1004040204000e204774b39aaf9bd8e62751e6d789e856bc26d6d33b8a72379dcb735c0ac21584650e20729447a36d774520cdda2dd6730e0ba3f7ce2161e253fa85c50ab1547e7b909cd801d6018cb2db6308b2a473000073010001d1ec93720173029372017303
refresh_nft_index: 2
update_nft_index: 3
tokens_to_mint:
pool_nft: ~
refresh_nft:
name: refresh NFT
description: refresh NFT
update_nft: ~
oracle_tokens: ~
ballot_tokens: ~
reward_tokens: ~Where refresh_contract_parameters section is copied from your current oracle_config.yaml with epoch_lengh changed to the desired value (to 20 in this case), pool_contract_parameters copied without changes, tokens_to_mint is copied from bootstrap config with only refresh_nft set to a desired values (new refresh NFT will be minted for the new refresh contract and will be used in the new pool box contract).
Then run:
oracle-core prepare-update prepare_update_conf.yamland check that oracle_config_updated.yaml with new refresh contract, pool contract and refresh NFT is generated.
The new pool contract hash is printed along with current reward token amount and guesstimated reward token amounts for the upcoming epochs.
Run
oracle-core vote-update-pool <NEW_POOL_BOX_ADDRESS_HASH_STR> <UPDATE_BOX_CREATION_HEIGHT>Where:
- <NEW_POOL_BOX_ADDRESS_HASH_STR> - base16-encoded blake2b hash of the serialized pool box contract for the new pool box
- <UPDATE_BOX_CREATION_HEIGHT> - The creation height of the existing update box.
and are printed in the output of the prepare-update command.
Make sure the oracle_config_updated.yaml config file generated during the prepare-update command is in the same folder as the oracle-core binary.
Run
oracle-core update-poolThis will submit an update tx.
Make sure the pool_config_updated.yaml config file generated during the prepare-update command is at hand.
Run
oracle-core import-update-pool pool_config_updated.yamlThis will update the pool_config.yaml. Restart the oracle afterwards.
Distribute the pool_config_updated.yaml file to all the oracles and instruct them to run the above import-update-pool command.