有两种方式广播新的交易:
使用第三方节点,能让你免去自己运行全节点所带来的麻烦。因为有大量数据需要同步的关系,设立一个以太坊的节点通常需要好几天的时间。并且同步所需的带宽和存储容量超过了一般笔记本电脑的处理能力,所以你同时需要一台性能强劲的设备。 此外,存储完整以太坊区块链的成本随着 DApp 的扩容而增加,你需要添加更多节点来扩张你的基础设施。当你的基础设施变得复杂到一定程度后,你将需要一个全职 DevOps 工程师(可编程运维工程师)。他们将帮助你维护基础设施,以确保你的基础设施有着可靠的正常运行时间和快速的响应时间。 综上所述,为了避免这些麻烦,许多 DApp 选择使用 Infura 或 Alchemy 之类的服务商来管理他们的节点。但凡事有利有弊,这也造成了一个中心化的阻塞点。但我们先不谈这个问题。 不管是你自己设置还是使用来自第三方服务的节点,这些节点通常被称为「提供商」(Providers)。我们接下来好好说说这些「提供商」。 每个以太坊客户端(提供者)实行 JSON-RPC 规范。这确保了前端应用程序想要与区块链交互时有一组统一的方法。JSON-RPC 是一种无状态、轻量级的远程应用程式调用 (RPC) 协议,它定义了多个数据结构及其处理规则。因为它具有传输不可知性(transport-agnostic),因此这些概念可在同一进程中被使用、穿梭在 Sockets、 HTTP 或许多不同的消息传递环境中。它使用 JSON (RFC 4627) 作为数据格式。 当你通过提供商连接到区块链后,你就可以读取存储在区块链上的状态。但是,如果你想写入状态,你需要在将交易提交到区块链之前,使用你的私钥对交易进行「签名」。 举个例子,假设我们运行了一个 DApp,它可以让用户阅读或发布博客文章到区块链。你在前端设置了一个按钮,允许任何人查询特定用户撰写的博客文章。但要记得,阅读区块链中的文章并不需要用户对交易进行签名。 但是,当用户想要在区块链上发布新的文章时,DApp 会要求用户使用他们的私钥「签署」交易,只有这样 DApp 才会将交易传播到区块链上。否则节点不会接受这笔交易。 签署交易这个环节通常是需要使用 Metamask(小狐狸)的时候。 Metamask 是一种工具,可让应用程序轻松处理密钥管理和交易签名。它原理非常简单,Metamask 将用户的私钥存储在浏览器中,每当前端需要用户签署交易时,它都会调用 Metamask。 (责任编辑:admin) |