基于 Node.js、TypeScript 和 WebSockets 的区块链客户端 - 服务器通信
1. 区块链节点通信与服务器添加
在区块链系统中,节点间的通信至关重要。虽然区块链技术以去中心化著称,无需服务器作为中心权威,但添加服务器可提供实用服务,如缓存哈希、广播新交易、请求最长链或宣布新创建的区块。
假设 M1 节点挖出一个区块并向服务器请求最长链,服务器会将此请求广播给区块链上的其他节点。各节点响应并返回其链(仅区块头),服务器再将这些响应转发给 M1。M1 节点接收最长链并通过检查每个区块的哈希来验证,然后将新挖出的区块添加到最长链并本地保存。此时,M1 节点在一段时间内拥有最长链,成为“真相源”。
若 M1 要创建新交易,如“Joe 向 Mary 转账 1000 美元”,为每个交易创建新区块效率低且成本高。通常一个区块包含多个交易,M1 可将新交易广播给其他区块链成员,其他矿工也会如此操作。
在去中心化系统中,共识机制不可或缺。当两个节点同时计算新区块的哈希时,需达成共识以确定哪个区块添加到链中及哪个节点获得奖励。区块链使用不同的共识协议,本应用采用工作量证明结合最长链来达成区块链真实状态的共识,确保使用单一链。
2. 项目结构
项目由服务器和客户端两部分组成,均使用 TypeScript 实现。以下是项目结构的详细说明:
- public 目录 :在构建过程中创建, public/index.html 文件加载 client/main.ts 文件的编译版本及所有导入的脚本,作为演示区块链节点的
超级会员免费看
订阅专栏 解锁全文
67

被折叠的 条评论
为什么被折叠?



