22、基于 Node.js、TypeScript 和 WebSockets 的区块链客户端 - 服务器通信

基于 Node.js、TypeScript 和 WebSockets 的区块链客户端 - 服务器通信

1. 区块链引入服务器

区块链技术以去中心化著称,无需服务器。但我们添加的服务器并非用于创建、验证和存储区块的中央权威,而是提供诸如缓存哈希、广播新交易、请求最长链或宣布新创建的区块等实用服务。

假设 M1 节点挖到一个区块,并向服务器请求最长链。服务器会将此请求广播给区块链上的其他所有节点,各节点会以其链(仅区块头)作为响应,服务器再将这些响应转发给 M1。M1 节点接收到最长链后,会通过检查每个区块的哈希来验证它,然后将新挖到的区块添加到这个最长链上,并将该链本地保存。在一段时间内,M1 节点将拥有最长链,成为“真相来源”,直到其他节点挖出一个或多个新块。

若 M1 想创建一笔新交易,如“Joe 给 Mary 转了 1000 美元”,为每笔交易创建一个新区块会很慢且成本高。通常一个区块包含多笔交易,M1 只需将新交易广播给区块链的其他成员即可。其他矿工节点也会对其交易进行同样操作。

在去中心化系统中,所有节点需要就有效事件达成共识。例如,若两个节点同时计算出一个新块的哈希,哪个块将被添加到链上,哪个节点将获得奖励?区块链的所有节点必须达成共识,确定获胜者。在我们的应用中,将使用工作量证明结合最长链来达成区块链真实状态的共识,以确保使用单一链。

所有广播的交易都会进入待处理交易池,任何节点都可以从中挑选一组交易(如 10 笔)并开始挖矿。

2. 项目结构

区块链应用由服务器和客户端两部分组成,均使用 TypeScript 实现。项目结构如下:


                
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值