编程日记:探索节点供应商(2022-08-25)

编程学习

做了什么?

  1. 成功了解了 Node 和 Node Provider 的本质,知晓了区块链网络的模型,以及模型中的 Node, 还有 Node 与 Node 之间通讯与连接的过程。

  2. 成功解释了本地区块链网络以及远程区块链网络的结构,更加透彻地了解了区块链网络中不同节点的不同身份和作用。

  3. 成功通过本地程序创建交易、签名交易,并将交易通过 Infura 节点提供商,发送给 Rinkeby 测试链上的节点,从而成功执行交易、部署合约、并执行合约函数。

  4. 成功学完第五课,完整了解了如何搭建本地环境、如何安装各种包、如何编译、部署、交互合约。

收获了什么?

Node and Node Provider

参考:Alchemy - What is a node provider?

Node 是运行在本地计算机上的一种程序,它是区块链网络的最小组成单位,无数个 nodes 之间按照共识相互协作,便构成了区块链网络。

区块链网络
区块链网络

Node 具备一切在区块链当中的功能,比如:验证交易是否合法、存储区块链的最新状态、与其它 nodes 进行来回通讯。

但是,成为 node 需要一定的门槛:

  • 设备上,需要有500GB的存储空间、需要不断地维护和更新客户端、需要有一定的网络速度。

  • 维护上,需要解决和其它节点的通讯问题、需要即时跟进到最新的 branch, 需要解决例如 eth_getLogs 等命令所带来的节点卡死问题等等。

所以,在本地搭建和运行 Node 会成为一件很有门槛的事情。为了能够避免这些麻烦就能够使用区块链服务,Node Provider(节点提供商)应运而生。

Node Provider 本质上是提供区块链服务的团队,该团队拥有多个可以用来提供区块链服务的全节点 (Full Node), 因此它们的用户只需要成为保存 Block Hearder 的轻节点 (Light Node), 就可以使用 Blockchain 的服务了。

本地节点 VS 节点供应商
本地节点 VS 节点供应商

核武器应用

# 【区块链与核武器决策】
>我思考了一下区块链和核武器决策之间的关系,发现:我们可以利用区块链做出不可违背的决定,比如:决定不发射核武器。

>但是,从决定到落实这个过程,并非区块链所可以掌控的。比如:掌管核武器是否发射的程序可以被黑入和管控,核武器库本身也可以被武力所夺权。

>所以,区块链只能保证逻辑层不可违背,但是执行层就不在区块链的影响范围内了。

用户、节点提供商、矿工

区块链网络当中,主要有三种角色:用户、节点提供商和矿工。

这三种角色的比较如下:

  • 身份

    • 相同:这三种角色都是 Node。

    • 不同:

      • 用户:属于 Light Node, 不具有使用区块链网络的权力,

      • 节点提供商和矿工:属于 Full Node, 具有完整的使用区块链网络服务的权力。

  • 作用

    • 矿工

      • What: 以算力为成本、以以争取记账权为目的的一批节点

      • Why: 它们的价值在于维护了区块链网络的稳定。

    • 节点提供商

      • What: 以运营节点为成本、以为用户提供区块链服务为目的的一批节点

      • Why: 它们的价值在于能够替用户承担成为全节点的成本。

    • 用户

      • What: 以手续费和月租为成本,以使用区块链网络服务为目的的一批轻节点

      • Why: 它们的价值在于能够为节点提供商提供租金,并为矿工提供手续费。

本地网络结构

本地的区块链网络,大概可以分成3个部分:应用、节点、以及网络。

  1. 应用

    1. What: 应用就是我们所编码的程序

    2. Why: 它负责生成交易,为交易签名,并将交易、公钥和签名一起发送给节点。

  2. 节点

    1. What: 节点就是区块链网络的最小组成单位

    2. Why: 它可以和其它的区块链网络连接起来,从而为程序提供服务,包括:① 广播交易、公钥和签名;② 验证交易是否合法;③ 更新本地的区块链状态。

  3. 网络

    1. What: 网络是区块链网络的缩写,它是节点按照同一种协议相互关联后的一种结果。

    2. Why: 网络能够为节点提供协议,从而让节点按照协议为整个网络提供服务