V1 (Alpha) -> Streamflow Upgrade Guide For Existing Active Transcoders
With the Streamflow protocol upgrade coming up next Monday January 13th, existing active transcoder node operators will need to be prepared to take a few actions in order to ensure that their orchestrator nodes (note the name change from transcoder -> orchestrator in a post-Streamflow world) will be able to continue earning inflationary rewards and accepting/redeeming payments for transcoding.
TLDR
If you are currently an active transcoder node operator, make sure to:
- Call reward in the first 1000 blocks of round 1610
- Download and run the latest Streamflow ready mainnet compatible node release (which will be available on the day of the upgrade) after the upgrade is complete
- Submit a
transcoder()
orbond()
transaction to join the active set for the next round after the upgrade is complete
The Details
The tentative timeline for the Streamflow upgrade, assuming 13 second block times, is as follows:
- The upgrade will take place in round 1610 (which should be on Monday January 13th)
- The upgrade process is set to begin at block 9274600 (around 7:30pm UTC) which is 1000 blocks after the start block of round 1610
- The protocol will be paused during the upgrade process
- The estimated length of the upgrade process is 5 hours and we are targeting to unpause the protocol by block 9275984. This should leave ~12 hours in round 1610 for existing active transcoder node operators to take the actions necessary to ensure that they will be be active in the following round
Note: given that block times can fluctuate, the estimates provided above might change.
Prior to block 9274600, you should make sure that you have called reward for round 1610. You will not be able to call reward for round 1610 after the upgrade is complete even if you were active prior to the upgrade and have not called reward yet.
Node operators should make sure that they are running the latest mainnet compatible node release. At the moment, this release is not available, but it will be available on the releases page on Monday January 13th when the upgrade is complete. A link to the Streamflow ready mainnet compatible release will be added to this post when it is published.
There will be an announcement when the protocol upgrade is complete and when the protocol is unpaused. At this point, if you were in the active set in round 1610 prior to the start of the upgrade you will need to submit a transcoder()
or bond()
transaction to the BondingManager
contract to join the active set for the next round. The two most straightforward ways to do this are:
Option 1
Use livepeer_cli
, the CLI wizard, that ships with the Livepeer node to submit a transcoder()
transaction. See the below screenshot:
Make sure to use different reward cut and fee share values from the values configured on-chain when invoking option 14 - otherwise, the node will not submit the transaction (this is due to a recent change that stops the node from submitting a transcoder()
transaction if the reward cut and fee shares values would not change). The current reward cut and fee share values configured on-chain can be viewed by invoking option 1:
In the above screenshot, the node’s on-chain reward cut and fee share values are 10% and 5% respectively. So, in order to submit the transcoder()
transaction you just need to input either a different reward cut or a different fee share value. You can always change the on-chain values back to your preferred values by invoking option 14 in livepeer_cli
a second time after submitting the first transcoder()
transaction that activates the node for the next round.
Option 2
In order to use this option, your node’s address must have at least 1 LPTU (1 LPT = 10 ** 18 LPTU) in its balance. You can view your node’s balance using option 1 in livepeer_cli
.
Submit a HTTP request to the node’s /bond
endpoint to self-bond 1 LPTU. This request will submit a bond()
transaction that will also activate the node for the next round. The request for the node with the address 0x916327a01D6469FD24267c180ec38368A69f1e81 can be sent with the below command:
curl -X POST http://localhost:7935/bond --data "amount=1&toAddr=0x916327a01D6469FD24267c180ec38368A69f1e81"
Once you submit the transaction that activates the node for the next round, verify that the node is pending activation for the next round by invoking option 3 in livepeer_cli
which should include the node’s address in the table printed to the console:
The “Active” column will display true
at the beginning of the next round.
The upgrade process will clear the active set for the next round so it is important for orchestrators to submit a transaction to join the active set for the next round even if they were already active prior to the upgrade. For more information on how activation works post-Streamflow, see this section of the docs.
If you are interested in the full list of changes between V1 (Alpha) and Streamflow, check out the changelog.