为什么交易不能直接发送到验证器/矿池?

问题描述 投票:0回答:2

现在 99% 的区块链交互都是通过 Infuria 或 Alchemy(MetaMask - API Infuria)进行的。

没有人提升他们的 geth 节点。

正因为如此,大多数人对“去中心化”这个词持怀疑态度,因为应用程序仍然存在失败点。

为什么无法将交易直接从浏览器发送到验证器?是什么阻止了这种情况?

毕竟这是去中心化之前的最后一个障碍。如果浏览器/扩展程序存储了数百个可以向其发送交易的矿池地址,那么这样的应用程序几乎是万无一失的。

ethereum
2个回答
2
投票

通常,签名的交易从钱包软件发送到节点(在点对点以太坊网络中),该节点将其作为“等待挖掘的交易”广播到网络的其余部分(即放置在内存池中) ).

矿工通常从内存池中获取交易并将其放入区块中。

从技术上来说,矿工可以接受来自其他来源的交易(或自己创建并签名),并将其放入区块中。

但这给交易发送者带来了不便——他们需要等到这个特定的矿工挖掘包含他们交易的区块。如果他们将交易发送到内存池,任何矿工都可以拾取它并将其包含在他们的区块中。目前还没有直接向矿工发送交易的标准化方法 - 因此每个矿工可能有不同的通道和不同的规则。

所以回答你的问题:

为什么交易不能直接发送到验证器/矿池?

他们可以。但(对于交易发送者而言)使用内存池并让任何人都可以挖掘交易,而不是等待一个特定的矿池来挖掘一个区块,这会更快。


0
投票

我知道这是迟到的回复,但万一您没有得到您正在寻找的答案......

直接连接到内存池就像连接到 JSON-RPC 端点一样。您正在连接到网络中的一个节点,该节点可能会出现故障。确实没有区别。没有中央服务器,只有节点与节点之间的连接。任何具有中央服务器外观的站点大多只是管理节点列表。

如果你想要去中心化,你需要了解节点确实会宕机的现实。您需要像网络一样将冗余融入您的应用程序中。

我的意思是,为什么不在您的应用程序中保留您信任的 JSON-RPC 端点列表(就不会捕获和存储您的请求以供其他用途及其稳定性而言)。在使用端点之前,先加入一些功能来检查端点,以确保其正常运行,如果没有则移至列表中的下一个。如果其中一个未启动,请将其标记为已启动,以便在可以时进行检查。当您收到此通知时,也许是检查您的列表的好时机。

Chainlist.org 拥有各种网络的 JSON-RPC 列表,并提供它们的状态。我不确定他们是否提供通过 API 从中提取列表的能力,但随后你就会创建你正在谈论的单点故障。

© www.soinside.com 2019 - 2024. All rights reserved.