IOTA Reference Implementation
Important: Due to an improvement in how we store transactions a downgrade is not possible.
Upgrade instructions:
Notable changes/improvements:
--local-snapshots-db-max-size
in the command line or LOCAL_SNAPSHOTS_DB_MAX_SIZE in ini file. i.e LOCAL_SNAPSHOTS_DB_MAX_SIZE = 50 GB
tips
parameter is no longer needed for getInclusionState
api callthreshold
parameter in getBalances
api callgetTrytes
api we shall return null
if transaction is missinggetTips
api call has been removed.sn_topic
in zmq.Full changelog:
Protocol-Change: Added bundle validity rules - check that bundles confirm only tails and 2 bundles at most (#1786) Check validity rules on tip-sel and check-consistency only (#1802)
To simplify transaction processing and tip selection, it is beneficial if bundles can only approve tail transactions. This allows for the construction of graph abstractions that simplify and improve tip selection and enable other scenarios. Up until now, it was possible to construct bundles that approve non-tail transactions (outside of the official client libraries). That makes the above not possible as it makes it impossible to distinguish the actual tail of a bundle.
This change changes the node software to only consider valid bundles where all transactions within the bundle approve, via their branch, the trunk transaction of the head transaction. Our client libraries are already building bundles using this logic, so there is no need to change anything if you have been using them to send transactions. This approach also has the following benefits:
Hotfix: Ensure proper creation of solid entrypoints (#1702)
There is an edge case where IRI didn't account for a transaction that was shared between two distinct bundles. Once it marked it as "counted" in one bundle, it was ignored for the next bundle. This lead to a corrupt ledger state.
Change log:
Update instructions
getTransactionsToApprove
, getBalances
, and getInclusionStates
calls unless they are synchronized. Previously, calling getTransactionsToApprove
on an unsychnronized node could hinder the synchronization process.Please leave some time for your neighbors to upgrade as well. Connection will only be established with neighbors who have upgraded to >= 1.8.0. If you are not receiving traffic from your neighbors within a day, restart your node. Your neighbors may have upgraded after a longer period of time and restarting your node should allow the node to re-establish the connection.
The following configuration parameters have been removed:
The following configuration parameters have been added:
TESTNET
true, default is false (also in testnet mode).RECONNECT_ATTEMPT_INTERVAL_SECONDS
defined interval. Neighbors to which the connection was closed, are put into "reconnect pool" until they are explicitly removed by removeNeighbors
.Note that this is only for Devnet. It should not run on Mainnet
Please leave some time for your neighbors to upgrade as well. Connection will only be established with neighbors who have upgraded to >= 1.8.0. If you are not receiving traffic from your neighbors within a day, restart your node. Your neighbors may have upgraded after a longer period of time and restarting your node should allow the node to re-establish the connection.
The following configuration parameters have been removed:
The following configuration parameters have been added:
TESTNET
true, default is false (also in testnet mode).RECONNECT_ATTEMPT_INTERVAL_SECONDS
defined interval. Neighbors to which the connection was closed, are put into "reconnect pool" until they are explicitly removed by removeNeighbors
.true
or false
value.LOCAL_SNAPSHOTS_PRUNING_ENABLED
flag.--tip-selection-timeout
(default 60 seconds) when performing tip selection. This is to avoid nodes stalling when tip selection is taking too long a time. You can change this using the TIP_SELECTION_TIMEOUT_SEC
config to a value that works for you.mainnet.snapshot.*
files from the location of your .JAR file, or from the path specified in the LOCAL_SNAPSHOTS_BASE_PATH
configuration parameter (if you specified it) before you start the node.