archethic-foundation / archethic-foundation/archethic-node

NetworkView hash does not represent transaction view

未关闭
#1,663 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug P2P
主要语言
Elixir
星标
82
派生
24
PR 合并指标
30 天内没有已合并 PR

描述

### Describe the problem you discovered

NetworkView is a hash of different data (mainly network chains last transaction address) aiming to ensure validation nodes have the same network view of the network chains.
But this hash is updated directly when a network transaction is replicated while the data represented by the transaction may be applicable in future.
For example the node shared secret transaction will update the network view hash directly but the application of this transaction is delayed to a specific date (00:00 for instance).

So it is possible that a welcome node get the network view hash just before replicating the node shared secret transaction and send the Start Mining message to validation nodes. The validation nodes receive the message after replicating the node shared secret transaction and so the hash will be different. Therefore the validation nodes will not start the validation and the welcome node will forward the transaction.
But in fact this node shared secret transaction would not affect the transaction and so the validation nodes could have validated the transaction.

This example does not cause any problem, but if part of the validation nodes start the validation and other does not it could create issue when the welcome node forward the transaction.

### Describe the solution you'd like

The network view hash should be computed based on the transaction validation time and get the same information as the validation nodes will do.
The network hash could even hash not the transaction addresses but directly the information them self. (To analyze)

### Epic

_No response_

贡献指南

打开贡献指南

调研方向

首先定位 NetworkView 哈希的计算以及交易验证时间的处理方式,然后将两者与验证节点使用的信息进行比较。完成的标准是:延迟交易不会在其验证时间之前改变哈希,并且节点计算出的网络视图相互匹配;直接对交易数据进行哈希处理这一替代方案仍需分析。

由索引模型根据 Issue 内容生成。

评估

技术栈
elixir
领域
blockchain, distributed-systems
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
需要澄清
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。