[借地方回复一下] 怎样才算Mint成功
Closed this issue · 1 comments
- For each block on the external sequencer, it must be only tagged by one mint or transfer event. If two or more events tagged the same block, the following dispute resolution should apply:
1. If Block N was tag by event A, B and C. Wait for Block N + 1 to become finalized and,
2. Sort event A, B, and C by its event ID in ascending order. Let’s say A.eventID < B.eventID < C.eventID.
3. Compute: ValidEvent = (EventID_A XOR EventID_B XOR EventID_C) XOR BlockHash(N+1) MOD NumOfEvents
- If BlockHash and EventID have different lengths, pad zeros on the left side of the byte array to match the length of the longest array. - If an event dispute occurs, the event chain state will be finalized once Block N + 1 is finalized. Non-valid events will be considered invalid and will have no effect on the event chain. The event creator must ensure that the event becomes finalized after writing it to the relay.
我让chatgpt总结了一下:
在事件链中,当发生争议时,验证的过程包含以下步骤:
最终确认:
等待涉及争议的区块 N 被确认,确保在区块 N + 1 最终确认之前不进行后续操作。
排序和计算:
对涉及争议的事件按照事件 ID 进行升序排序,例如,事件 A.eventID < B.eventID < C.eventID。
计算:ValidEvent = (EventID_A XOR EventID_B XOR EventID_C) XOR BlockHash(N+1) MOD NumOfEvents。
如果区块哈希和事件 ID 长度不同,需要在字节数组的左侧填充零以匹配最长数组的长度。
确定有效事件:
根据计算得到的 ValidEvent,确定唯一的有效事件。
处理争议:
如果多个事件标记了相同的区块,通过上述步骤计算出唯一的有效事件,用于处理争议。
这个过程确保了在事件链中出现争议时,通过排序和计算,可以确定唯一的有效事件,从而解决争议。这样的方法有助于确保事件链的一致性和可验证性。
这是一个用于计算有效事件的公式,用于解决事件链中同一区块上多个事件的争议。让我详细解释一下这个公式的各个部分:
EventID_A, EventID_B, EventID_C:这是涉及争议的事件的唯一标识符,即事件 ID。每个事件都有一个唯一的 ID,通过异或运算将它们组合在一起。
XOR (异或) 操作:异或运算是一种按位运算,当两个比特位不同时,结果为1,否则为0。在这个公式中,通过多个事件的 ID 进行异或运算,以混合它们的比特位。
BlockHash(N+1):这是在区块 N+1 上的哈希值。在事件链中,区块的哈希用于增加随机性和安全性。
MOD (取模) 操作:取模运算返回除法的余数。在这里,BlockHash(N+1) 和异或结果之和被取模,以确保结果在 0 到 NumOfEvents(事件数量)之间。
ValidEvent:这是计算得到的最终结果,代表唯一的有效事件。通过这个计算,可以为涉及同一区块的多个事件选择一个唯一的有效事件,以解决争议。
这个公式的目的是通过混合事件的 ID、区块哈希和取模运算,确保计算结果是一个在一定范围内的唯一值,从而有效地解决了事件链中同一区块上多个事件的争议。
具体怎么mint出的,由于官方目前尚未公布完整的event数据,还不能确定