什么是 RPC
RPC 指远程程序调用(Remote Procedure Call), 是一种软件通信技术。通过 RPC 一台计算机调用另一台计算机上的程序并执行。RPC 是 API(应用程序编程接口)的一种。
举个🌰:你买了一个智能电饭煲。你可以在手机上远程操控这个电饭煲。也就是说,当你人在办公室的时候也可以通过手机 App 让电饭煲开始自动煮饭。这个过程就是通过 RPC 来实现的。
RPC是一个请求-响应协议(request-response protocol)。调用者发送请求,在远程计算机上执行一个带有指定参数的程序。然后,执行者执行,并将结果发回给调用者。
在 Web2 中,RPC 可用于远程文件访问、远程软件任务管理、远程监控程序控制和远程错误日志等。
而对于区块链而言,RPC 是一种节点与节点之间或是节点与虚拟机之间的通信方式。具体来说就是,每个节点都可以通过 RPC API 来向其他节点发送指令,或从其他节点处查询区块链网络中的数据(就像一个交流的入口)。
什么是虚拟机?什么是以太坊虚拟机?请参考“什么是以太坊虚拟机”章节。
去中心化应用(DApp)想要连接区块链网络就需要先连接到节点,然后再通过节点与区块链网络交互(例如读写数据或执行智能合约)。而 DApp 连接节点也需要用到 RPC 技术。
Nodes as Service (节点服务商)
DApp 开发者可以通过两种方式来连接节点。第一,自己运行一个节点,通过自己的节点与区块链网络互动。第二,与其他节点合作,尤其是节点服务提供商,使用他们的节点。相对于第一种方式,选择服务商会在一定程度上降低开发者的时间和开发成本。但是,选择服务商也相当于将部分产品的运行与第三方服务商挂钩,会存在一定的中心化风险。
Infura 是一家区块链相关的工具和基础设施服务提供商。其是一家中心化的公司,在2019年被 Consensys 收购。
节点服务是 Infura 的主要产品之一,支持 Ethereum、Polygon、Optimism、Arbitrum、Avalanche、Near 等。
MetaMask(最大的加密货币钱包)也是 Infura 的用户,通过 Infura 节点来访问区块链。因此,当使用 MetaMask 时,你实际上是在使用 Infura 提供的基础设施服务。(值得注意的是,MetaMask 也属于 Consensys)。
你可能还对以下内容感兴趣:
Web3
What else do you want to learn?