主页 > imtoken最新版本 > python在以太坊开发中如何选择节点和网络?
python在以太坊开发中如何选择节点和网络?
以太坊节点
为什么我需要连接到一个节点?
以太坊协议定义了一种人们通过网络与智能合约进行交互的方法。 为了获取有关合约、账户余额和新交易状态的最新信息,协议需要与网络上的节点连接。 这些节点不断地共享最新的数据。
Web3.Py 是用于连接这些节点的 Python 库。 它不在内部运行自己的节点。
如何选择要使用的节点?
由于以太坊的性质,这在很大程度上是个人喜好问题,但它会对安全性和可用性产生重大影响。 此外,节点软件正在迅速发展,因此请对当前选项进行研究。 我们不推荐任何特定节点,但列出一些流行的选项和一些基本细节。
最关键的决定之一是使用本地节点还是托管节点。 让我们看一下本地节点与托管节点的简单含义:
本地节点比受管节点具有更好的安全性。 恶意托管节点可能会向您提供不正确的信息、记录您使用 IP 地址发送的交易,或者只是离线运行。 不正确的信息会导致各种问题,包括资产损失。
另一方面,在本地节点上,您的机器正在逐一验证网络上的所有交易并提供最新状态。 不幸的是,这意味着使用大量磁盘空间,有时还需要大量带宽和计算。 此外,下载完整的区块链历史记录需要大量的前期成本。
如果您希望您的节点管理您的密钥(一个流行的选项),您必须使用本地节点。 请注意,即使您在自己的机器上运行节点,您仍然必须信任节点软件和您在该节点上创建的任何帐户。
最流行的自运行节点选项是:
您可以在 ethdocs.org 找到更完整的节点软件列表。
有些人认为从头开始同步本地节点花费的时间太长,尤其是当他们刚刚开始使用以太坊时。 解决这个问题的一种方法是使用受管节点。
最受欢迎的托管节点选项是 Infura。 您可以像连接本地节点一样连接到它,但有一些注意事项。 它不能(也不应该)为您提供私钥,这意味着不能直接使用一些常用方法,例如 w3.eth.sendTransaction()。 要将交易发送到托管节点,请阅读有关使用本地私钥的信息。
决定选择哪个节点选项后,您需要选择要连接到哪个网络。 通常,您会在公共链和测试链之间进行选择。
我可以使用 MetaMask 作为节点吗?
MetaMask 不是一个节点。 它是与节点交互的接口。 粗略地说,如果将 Web3.Py 变成浏览器扩展,MetaMask 类似于 web3.py。
默认情况下,MetaMask 连接到 Infura 节点。 也可以将 MetaMask 设置为使用本地运行的节点。
如果您尝试使用已在 MetaMask 中创建的帐户,请参阅如何在 Web3.Py 中使用 MetaMask 帐户?
我应该连接到哪个网络?
一旦你回答了我如何选择要使用的节点? 您必须选择要连接的网络。 对于某些场景,这很容易:如果你有以太币并且你想花掉它,或者你想与生产网络上的任何智能合约进行交互,那么你就连接到以太坊公共链网络。
如果你想在不使用真实以太的情况下测试这些东西以太坊节点是什么意思,那么你需要连接到测试链。 有几个测试链可供选择。 测试网络 Ropsten,与生产网络最相似。 然而,当你想测试一个智能合约时,垃圾邮件和攻击发生了,这是有害的。
有替代网络可以限制垃圾邮件和攻击的损害,但它们没有完全标准化节点软件。 geth 运行它自己的 (Rinkeby),Parity 运行它自己的 (Kovan)。 请参阅此 Stackexchange 问答中的完整比较。
那么简单说一下以太坊节点是什么意思,选择这种方式:
他们的每个网络都有自己的以太币版本。 生产网络,即公链以太币必须购买。 自然,测试链上的以太币通常是免费的。 看看测试网是如何获得以太币的?
一旦决定要连接到哪个网络并为该网络设置节点,您就需要决定如何连接它。 在大多数节点中都有一些选项。 请参阅选择如何连接到节点。
分享我们的python以太坊教程,主要是供python工程师使用web3.py进行区块链以太坊开发。