eyewater 最近的时间轴更新
eyewater

eyewater

V2EX 第 277185 号会员,加入于 2017-12-27 08:29:43 +08:00
预算 1000 以内,收一张 8G 显存的 N 卡
二手交易  •  eyewater  •  2024-09-03 16:28:35 PM  •  最后回复来自 HaoBaiCai
29
1500 左右能收到什么样的平板(1400-1650)?
二手交易  •  eyewater  •  2021-12-21 22:59:44 PM  •  最后回复来自 efcndi
20
收台显示器
二手交易  •  eyewater  •  2021-08-30 16:13:44 PM  •  最后回复来自 eyewater
9
基于 Hyperledger Fabric 的一个简易 App
分享创造  •  eyewater  •  2018-08-25 06:54:18 AM  •  最后回复来自 eyewater
5
eyewater 最近回复了
看到博主对 PBFT 的两阶段感到困惑,在此解答一下,博主推出来 PBFT 不需要两阶段的原因在于没有考虑网络问题:

假设我们有四个节点 P1,P2,P3,P4 (有一个恶意节点,但是无需标明哪个节点是恶意的)。两个 view ,v1 和 v2 ,以及两个区块 B1 和 B2 。

如果没有两阶段会发生什么(假设只有 prepare 阶段)?

1. 在 v1 ,对于 B1 ,只有 v1 收到了 3 票(2f+1),P2 ,P3 ,P4 都没有收到足够的票(注意,此时已经达到了触发 view change 的条件)。
2. 在 v2 ,对于 B2 ,P2 ,P3 ,P4 收到了 3 票。

此时会发生,在 v1 ,P1 提交了 B1 ,在 v2 ,P2 ,P3 ,P4 提交了 B2 。
此时已经违法了安全性(这是因为网络是半同步)。

如果有两阶段会发生什么( prepare 和 commit )?
1. 在 v1 ,对于 B1 ,只有 P1 收到了 3 个 commit 票,P2 ,P3 ,P4 都没有收到足够的 commit 票。

此时,对于 B1 ,如果 P1 收到 3 个 commit 票,那么至少有两个诚实节点认为 B1 已经 prepared 。

2. 在 v2 ,由于 view change 需要收到 3 个节点的 view change 消息,并且 view change 会包含每个节点认为已经准备好的区块。

由条件 1 ,我们已知有两个节点认为 B1 是 prepared ,在 view change 时,需要三条 view change 消息。那么三条 view change 中至少有两个消息来自诚实节点。

此时,对于 B1 ,有两个诚实节点认为 B1 已经 prepared 。
而 view change 的消息中又包含了两个诚实节点的消息。

我们用 H1 来表示认为 B1 已经 prepared 的诚实节点集合,用 H2 来表示广播 view change 消息的诚实节点集合。

由于|H1| >= 2, |H2| >= 2 ,但是我们只有三个诚实节点,这意味着|H1|与|H2|存在交集。也就是说至少有一个诚实节点认为 B1 已经 prepared 并且广播了一个 view change 消息。

这样,在 v2 ,所有节点还是会对 B1 进行投票。此时,P1 ,P2 ,P3 ,P4 将会提交 B1 。符合安全性。

另外,本人也在找区块链方面的实习,主要研究的是区块链共识协议,对 Ethereum, PBFT, HotStuff 都有比较深入的理解,如果有机会,可以联系我
2022-11-01 17:16:49 +08:00
回复了 ralstonish 创建的主题 Python 想用 Python 来控制硬件,做一些小玩意儿
可以买个 esp32 刷 arduino 的固件,arduino 的语言还是很简单,比如这个,用 DHT11 传感器获取温湿度 https://create.arduino.cc/projecthub/arcaegecengiz/using-dht11-b0f365

micropython 也用过,不过感觉没有 arduino 的库多
2022-06-16 10:08:45 +08:00
回复了 bbsabc2 创建的主题 程序员 作为一名二本计算机专业的教师,如何点亮学生的技能树
砍掉人工智能方向的课程吧,人工智能比较看学历
个人感觉基础课程还是要教(数据结构、操作系统、计算机网络),不管能不能听懂,最起码他们会有个印象以后遇到问题后也知道是哪个领域的问题。
或者就是根据你们的经验,在讲述实战课程的时候多讲讲基础课程的内容,比如讲 Spring Boot 的时候可以多讲讲 TCP 、Socket 、HTTP 等相关知识。讲 Java 的时候可以多讲一点的多线程编程和 IO 的内容(多线程还能和操作系统结合讲一下为什么会产生数据冲突等问题)。
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3075 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 00:20 · PVG 08:20 · LAX 17:20 · JFK 20:20
♥ Do have faith in what you're doing.