HuangLab-SYSU / block-emulator

MIT License
239 stars 63 forks source link

CLPA划分时,那个图的初始化代码在哪里,我怎么找不到 #22

Closed Juice-By closed 4 months ago

iiinotlll commented 8 months ago

你好,你需要的代码在 partition/partition_CLPA.go 文件中,Init_CLPAState 是图的初始化代码。 CLPA 在实现中,一开始图是空的,随着系统的运行不断增加图中的 vertex 和 edge(AddVertex 和 AddEdge)。 等到一个 epoch 执行完毕,执行 函数 CLPA_Partition 进行 CLPA 算法。

Juice-By commented 8 months ago

节点是从交易读取的,如果节点数很多。划分时4个分片,每个分片4个节点,只有16个节点,那是选择前16个节点和相关边这种子图作为划分依据吗

iiinotlll commented 8 months ago

CLPA 图中的 Vertex 意思是 “顶点”,指的是参与图划分的 “账户”,而非共识节点。 一笔交易成功上链之后,交易的转账方和接收方会被视为 两个 Vertex 加入 CLPA 图,并且构建 1 条连接该两个节点的 edge。

这个文档可以帮助你理解 CLPA: docs/ch/CLPA.md

Juice-By commented 8 months ago

好的,谢谢

Juice-By commented 4 months ago

您好,请问当epoch结束后运行了CLPA算法,下一个epoch应该有更好的划分结果,为什么相关性能第二个epoch都比第一个要差呢

iiinotlll commented 4 months ago

可能有如下几个原因:

  1. 设置的分片数目不够多;
  2. 使用的数据集不是历史数据,不具备一定的规律。