You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Actually there is a global timeout for a transaction to be mined (1 minute). If the timeout is reached the mining process notify the error and stop :
defhandle_event({:timeout,:stop_timeout},:any,_state,data=%{context: %ValidationContext{transaction: tx}})doLogger.warning("Timeout reached during mining",transaction_type: tx.type,transaction_address: Base.encode16(tx.address))notify_error(:timeout,data):stopend
This can lead to a problem when some storage node do not respond with a storage confirmation. In order to notify the previous chain and the beacon chain, a validation node wait for all the storage confirmations, but if one of the storage node do not respond, the validation node will reach the global timeout and so don't notify beacon chain and previous chain. If this happen on all the validation nodes, the transaction will never be added into the beacon chain even if it has been replicated by 95 % of the storage nodes.
Describe the solution you'd like
To avoid this problem, when a node reach the global timeout, if the current state is replication then it should notify the previous chain and the beacon chain (if there is at least 1 storage confirmations)
Describe the problem you discovered
Actually there is a global timeout for a transaction to be mined (1 minute). If the timeout is reached the mining process notify the error and stop :
This can lead to a problem when some storage node do not respond with a storage confirmation. In order to notify the previous chain and the beacon chain, a validation node wait for all the storage confirmations, but if one of the storage node do not respond, the validation node will reach the global timeout and so don't notify beacon chain and previous chain. If this happen on all the validation nodes, the transaction will never be added into the beacon chain even if it has been replicated by 95 % of the storage nodes.
Describe the solution you'd like
To avoid this problem, when a node reach the global timeout, if the current state is
replication
then it should notify the previous chain and the beacon chain (if there is at least 1 storage confirmations)Additional context
Epic: #306
The text was updated successfully, but these errors were encountered: