扫一扫分享
Nimiq协议的官方JavaScript实现, Nimiq 的 P2P 网络使用 WebRTC 和 WebSocket 连接。
在 Nimiq 网络里面,主要有两种节点:中枢节点(Backbone Nodes )和浏览器节点(Browser Nodes)。它们使用相同的可以在两种环境同时运行的 JavaScript 代码库。
中枢节点基于 NodeJS,运行在服务器上。它们通过 WebSockets 互相通讯,同时作为浏览器节点的入口点和信令服务器,供其建立浏览器到浏览器的 WebRTC 连接。
浏览器节点构建在浏览器引擎之上,因此它们完全不需要安装。为了连接网络,它们至少要和一个中枢节点建立一个 WebSocket 连接。一旦它们建立了第一个连接,它们就开始使用中枢节点作为信令服务器,建立浏览器到浏览器的连接。浏览器节点也可以作为后续浏览器到浏览器连接的信令服务器。
从长远来看,浏览器节点主要是轻客户端,不一定要作为矿工参与。其主要用途是迅速建立共识,以证明其账户收支并将交易发送到网络中。重型矿工出于性能和便利的原因,可能更喜欢运行中枢节点,尽管我们想要把中枢节点的收益降低,以便使激励向着我们浏览器优先的策略平衡。此外,即使是运行轻客户端的浏览器也会为网络贡献资源:它们与其他浏览器共享(压缩过的)区块链数据,以减少中枢节点上的网络负载。
基于 Web 的区块链的主要挑战是将核心区块链组件转到 Web 平台,包括:
网络组件 用于建立 P2P 连接。
存储组件 用于存储密钥和区块链数据。
加密组件 用于散列、签名和校验。
另外,因为 Web 的限制,协议必须精简:
数据压缩 以便几秒钟内完成区块链同步,而不是几个小时。
即时且可扩展的交易 这样才能实现在柜台支付。
简易 意味着我们只做“支付”这一件事,并把它做得比别人更好。
区块链参数 为了我们浏览器优先的策略而精简。
手机预览