Skip to content

Commit c8c9939

Browse files
committed
init
1 parent cb2e9da commit c8c9939

5 files changed

Lines changed: 37 additions & 36 deletions

File tree

13区块链/contract/合约安全.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
## TheDAO合约重入攻击
44
```solidity
55
Contract Dao {
6-
76
87
function withdraw() public {
98
// Check user's balance

13区块链/layer2/Readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ L1,也就是第一层网络,指的是底层区块链基础设施。它们是
1414
以太坊和比特币比较关心的就是去中心化和安全性。而有一些新公链更注重的是可扩展性和安全性。
1515

1616
## 扩容方案
17-
![扩容方案](./images/l2.png)
17+
![扩容方案](../images/l2.png)
1818
- 链上扩容
1919
- 分片(Sharding)技术:对区块链网络进行分片,从而增加其扩展性,目前 Sharding 方案仍然在跨分片通信、欺诈识别、随机分配与选举安全性等方面存在不足。
2020

13区块链/原理/p2p.md

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
## **1️⃣ 区块链节点的主要类型**
1010
不同类型的节点在网络中的角色不同,它们的交互方式也有所区别:
1111

12-
| **节点类型** | **作用** | **交互方式** |
13-
|------------|--------|-------------|
14-
| **全节点(Full Node)** | 存储完整区块链数据,验证交易和区块 | 维护 P2P 连接,同步完整数据,广播交易 |
15-
| **轻节点(Light Node)** | 仅存储区块头,不存储完整区块数据 | 依赖全节点查询数据 |
16-
| **矿工节点(Mining Node)** | 负责挖矿,打包交易生成新区块 | 竞争记账权,向全网广播新区块 |
17-
| **验证节点(Validator Node)** | 在 PoS 网络中负责验证和打包交易 | 通过共识协议参与投票,确定新区块 |
18-
| **观察节点(Observer Node)** | 仅监听和获取网络数据,不参与共识 | 监听交易广播,提供数据查询 |
19-
| **存储节点(Storage Node)** | 仅存储历史数据,不处理交易 | 提供查询历史数据的 API |
12+
| **节点类型** | **作用** | **交互方式** |
13+
| ------------------------------ | ---------------------------------- | ------------------------------------- |
14+
| **全节点(Full Node)** | 存储完整区块链数据,验证交易和区块 | 维护 P2P 连接,同步完整数据,广播交易 |
15+
| **轻节点(Light Node)** | 仅存储区块头,不存储完整区块数据 | 依赖全节点查询数据 |
16+
| **矿工节点(Mining Node)** | 负责挖矿,打包交易生成新区块 | 竞争记账权,向全网广播新区块 |
17+
| **验证节点(Validator Node)** | 在 PoS 网络中负责验证和打包交易 | 通过共识协议参与投票,确定新区块 |
18+
| **观察节点(Observer Node)** | 仅监听和获取网络数据,不参与共识 | 监听交易广播,提供数据查询 |
19+
| **存储节点(Storage Node)** | 仅存储历史数据,不处理交易 | 提供查询历史数据的 API |
2020

2121
---
2222

@@ -87,12 +87,12 @@
8787
## **3️⃣ 节点间通信协议**
8888
区块链的节点交互主要依赖 **P2P 网络协议**,常见的通信协议包括:
8989

90-
| **协议类型** | **作用** | **应用区块链** |
91-
|------------|--------|--------------|
92-
| **Gossip 协议** | 随机广播消息,提高去中心化 | 以太坊、比特币 |
93-
| **Libp2p** | 高效的 P2P 网络通信协议 | 以太坊 2.0、IPFS |
94-
| **Devp2p** | 以太坊的专用 P2P 协议 | 以太坊 |
95-
| **gRPC / REST API** | 轻节点和 DApp 访问区块链数据 | 以太坊、Solana |
90+
| **协议类型** | **作用** | **应用区块链** |
91+
| ------------------- | ---------------------------- | ---------------- |
92+
| **Gossip 协议** | 随机广播消息,提高去中心化 | 以太坊、比特币 |
93+
| **Libp2p** | 高效的 P2P 网络通信协议 | 以太坊 2.0、IPFS |
94+
| **Devp2p** | 以太坊的专用 P2P 协议 | 以太坊 |
95+
| **gRPC / REST API** | 轻节点和 DApp 访问区块链数据 | 以太坊、Solana |
9696

9797
💡 **不同协议优化数据传播方式,提高交易确认速度!**
9898

@@ -114,15 +114,6 @@
114114

115115
---
116116

117-
## **🔚 总结**
118-
| **交互类型** | **交互流程** | **涉及节点** |
119-
|------------|------------|------------|
120-
| **交易传播** | 用户创建交易 → P2P 网络广播 → 矿工打包 | 轻节点、全节点、矿工节点 |
121-
| **区块同步** | 矿工挖出新区块 → 广播到全网 → 全节点同步 | 矿工节点、全节点 |
122-
| **共识机制** | 矿工竞争挖矿(PoW)或投票确认(PoS) | 矿工节点、验证节点 |
123-
| **数据查询** | 轻节点向全节点查询数据 | 轻节点、观察节点 |
124-
125-
💡 **区块链通过 P2P 网络连接所有节点,确保数据安全、不可篡改、去中心化!**
126117

127118

128119
# 🚀 Solana 的区块同步协议:Turbine
@@ -155,14 +146,25 @@
155146
---
156147

157148
## **4️⃣ Turbine vs 传统 P2P**
158-
| **协议** | **传播方式** | **适用区块链** |
159-
|----------|-------------|----------------|
160-
| **Turbine** | 数据分片+层级传播 | Solana |
161-
| **Gossip 协议** | 全节点广播 | 以太坊、比特币 |
162-
| **Libp2p** | 自适应 P2P 网络 | 以太坊 2.0、IPFS |
149+
| **协议** | **传播方式** | **适用区块链** |
150+
| --------------- | ----------------- | ---------------- |
151+
| **Turbine** | 数据分片+层级传播 | Solana |
152+
| **Gossip 协议** | 全节点广播 | 以太坊、比特币 |
153+
| **Libp2p** | 自适应 P2P 网络 | 以太坊 2.0、IPFS |
163154

164155
---
165156

166-
## **5️⃣ 结论**
167-
Turbine 是 Solana 的核心创新之一,使得 Solana 能够 **大幅提升区块同步速度**,从而实现高达 **65,000+ TPS** 的吞吐量,是其高性能的关键技术之一。 🚀
157+
### 底层技术与实现对比
158+
159+
| **技术特性** | **Turbine** | **QUIC** |
160+
| -------------- | --------------------------------------- | -------------------------------------------- |
161+
| **传输层协议** | 基于 `UDP`(无连接、不保证可靠性) | 基于 `UDP`,但实现类似 TCP 的可靠性传输 |
162+
| **数据分片** | 区块数据分片 + 纠删码(Erasure Coding) | 不强制分片,但支持流多路复用(Multiplexing) |
163+
| **错误处理** | 依赖纠删码恢复丢失分片,不重传 | 通过丢包检测与重传(类似 TCP 的可靠性机制) |
164+
| **加密** | 不强制加密(依赖上层应用) | **强制加密**(TLS 1.3 集成到协议层) |
165+
| **连接管理** | 无连接状态,直接广播 | 有连接状态(`Connection ID` 支持 NAT 穿透) |
168166

167+
### 总结​​
168+
1. ​Gossip 协议​​ 是一种去中心化的数据广播机制,强调最终一致性;
169+
1. ​libp2p​​ 是功能完备的 P2P 协议栈,提供模块化网络功能。
170+
​​以太坊 1.x​​ 使用基于 Gossip 的自定义协议,而 ​​以太坊 2.0​​ 全面采用 libp2p(含 gossipsub 模块),以实现更高的扩展性和跨链互操作性。

13区块链/原理/原理2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ Sybil 攻击是一种网络攻击方式,攻击者通过伪造大量虚假身
242242
- 网络通信优化
243243
- P2P 网络优化
244244
- 采用更高效的 Gossip 协议,减少冗余消息。
245-
- 使用 QUIC(HTTP/3)替代 TCP,提高区块传播速度(Solana 采用 QUIC)。
245+
- 使用 QUIC(HTTP/3)替代 TCP,提高区块传播速度(Solana 采用 Turbine分片传输)。
246246
- 节点去中心化 & 负载均衡
247247
- 优化节点发现机制(以太坊 Kademlia DHT,Solana Turbine 分片传输)。
248248
- 使用超级节点提高区块传播速度(EOS DPoS 超级节点)。

13区块链/原理/原理3.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 原理
1+
# 原理3
22

33
## 区块链的不可篡改特性是由哈希算法保证的。
44

@@ -8,7 +8,7 @@
88

99
## Block Hash
1010

11-
![区块hash](./images/block-hash.jpg)
11+
![区块hash](../images/block-hash.jpg)
1212

1313
## 数字签名
1414
- 防伪造,防篡改,防抵赖。
@@ -28,7 +28,7 @@
2828

2929
## 共识机制
3030
确保所有的节点在没有中心权威的情况下也能就网络的状态达成一致.
31-
- [共识](./3共识.md)
31+
- [共识](./共识.md)
3232

3333
## 加密技术
3434
- 确保信息传输过程中内容不变。

0 commit comments

Comments
 (0)