# 编程日记：探索节点供应商（2022-08-25）

By [Corror](https://paragraph.com/@corror) · 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?](https://alchemy.com/blog/what-is-a-node-provider)

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

![区块链网络](https://storage.googleapis.com/papyrus_images/710534fe95dd346e2b17a7ac2295d5feeaea144a4f4ca030e7db4b4b503ad501.png)

区块链网络

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

但是，成为 node 需要一定的门槛：

*   设备上，需要有500GB的存储空间、需要不断地维护和更新客户端、需要有一定的网络速度。
    
*   维护上，需要解决和其它节点的通讯问题、需要即时跟进到最新的 branch, 需要解决例如 `eth_getLogs` 等命令所带来的节点卡死问题等等。
    

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

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

![本地节点 VS 节点供应商](https://storage.googleapis.com/papyrus_images/a55e26df3130359345cfca07d5da28552f7673a7cd4158451f14d680e9105b08.png)

本地节点 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: **网络能够为节点提供协议，从而让节点按照协议为整个网络提供服务**。

---

*Originally published on [Corror](https://paragraph.com/@corror/2022-08-25)*
