python必须连网开发吗_Python以太坊开发节点和网络选择

为什么我需要连接到一个节点?

以太坊协议定义了一种方法,用于人们通过网络与智能合约相互作用。为了获得关于合约、账户余额和新交易状态等最新的信息,协议需要与网络上的节点进行连接。这些节点不断地共享最新的数据。

Web3.Py是用于连接这些节点的Python库。它不在内部运行它自己的节点。

如何选择使用哪个节点?

由于以太坊的特点,这在很大程度上由个人的偏好来决定,但它会对安全性和可用性有重大影响。此外,节点软件正在快速发展,所以请需要对当前可选项进行研究。我们不推荐任何特定的节点,但列出一些流行的选项和一些基本细节。

最关键的决定之一是使用本地节点还是托管节点。来看看本地VS托管节点的简单含义:

本地节点:本地节点由你自己启动并控制。它的安全和你的环境安全性一样,在于你自身。当你在机器上运行geth或parity时,你就是在运行本地节点。

托管节点:托管节点由其他人控制。当连接到Infura时,连接到托管节点。

本地节点比托管节点有更好的安全性。恶意托管节点可以给你提供不正确的信息,用IP地址记录你发送的交易,或者只是脱机运行。不正确的信息会引起各种各样的问题,甚至包括资产流失。

另一方面,在本地节点上,你的机器正在逐个验证网络上的所有交易,并提供最新状态。不幸的是,这意味着使用大量的磁盘空间,有时显著的带宽和计算。另外,下载完整的区块链历史记录有很大的前期成本。

如果希望让节点管理密钥(流行的选项),则必须使用本地节点。注意,即使在自己的机器上运行一个节点,你仍然要信任节点软件,并在该节点上创建的任何帐户。

最流行的自运行节点选项是:

geth(go-ethereum) [1]

parity [2]

你可以在ethdocs.org[3] 中找到一个更完整的节点软件列表。

有些人认为,从零开始同步本地节点所需的时间太久,尤其是如果它们只是刚开始学习以太坊的话。解决这个问题的一种方法就是使用托管节点。

最流行的托管节点选项是Infura [4]。你可以连接它,就像它是一个本地节点,有几个注意事项。它不能(也不应该)为你提供私钥,这意味着一些常见的方法,如w3.eth.sendTransaction()不可直接使用。要向托管节点发送交易,请阅读有关本地私钥的工作。

一旦决定要选择什么节点选项,就需要选择连接哪个网络。通常,你在公有链和测试链之间进行选择。

我可以用MetaMask作为节点吗?

MetaMask不是一个节点。它是一个与节点交互的接口。大致上,如果你把Web3.Py变成浏览器扩展,MetaMask就和web3.py是差不多的。

默认情况下,MetaMask连接到一个Infura节点。也还可以设置MetaMask使用本地运行的节点。

如果你试图使用已在MetaMask中创建的帐户,请参阅如何使用Web3.Py中的MetaMask帐户 [5]?

我应该连接哪个网络?

一旦你回答了我该如何选择使用哪一个节点?你必须选择连接哪个网络。对于某些场景来说,这是很容易的:如果你有以太ether,你想消费它,或者你想与任何生产网络上的智能合约交互,那么你连接到以太坊公有链网络上。

如果你想测试这些东西而不使用真正的以太ether,那么你需要连接到测试链。有几个测试链可供选择。一个测试网络Ropsten,它是最类似于生产网络的。然而,当你想测试一个智能合约的时候,已经有垃圾邮件和攻击发生,这是有破坏性的。

有一些替代网络限制了垃圾邮件和攻击的破坏,但是它们对节点软件没有完全标准化。geth运行自己的(Rinkeby),Parity运行自己(Kovan)。在这个Stackexchange Q&A [6] 中看到一个完整的比较。

所以我们简略的讲,选择这样的方式:

如果使用Parity,连接到Kovan

如果使用Geth,连接到Rinkeby

如果使用不同的节点,或测试挖掘,连接到Ropsten

他们的每一个网络都有自己版本的ether。生产网络即公有链以太ether必须购买,自然,测试链上的以太ether通常是免费的。看看测试网是如何获得以太的[7]?

一旦确定了连接哪个网络,并为该网络设置节点,就需要决定如何连接它。在大多数节点中有一些选项。请参见选择如何连接到节点[8]。

文中标注的原文链接如下:

[1] https://ethereum.github.io/go-ethereum/

[2] https://www.parity.io/

[3] http://ethdocs.org/en/latest/ethereum-clients/

[4] https://web3py.readthedocs.io/en/stable/infura.io

[5] https://web3py.readthedocs.io/en/stable/troubleshooting.html#use-metamask-accounts

[6] https://ethereum.stackexchange.com/a/30072/1461

[7] https://web3py.readthedocs.io/en/stable/troubleshooting.html#faucets

[8] https://web3py.readthedocs.io/en/stable/providers.html#choosing-provider

python开发以太坊应用(使用web3) 目录 第一章,初识以太坊 第二章,以太坊之简易开发流程 第三章,以太坊之账户管理 第四章,以太坊之状态与交易 第五章,以太坊之智能合约 第六章,以太坊之过滤器 正文 ** 第一章,初识以太坊 ** 第一章 属于概述性的内容,暂时不写。以后补充上来。 ** 第二章,以太坊之简易开发流程 ** 在这一章,我们将完成一个简单的控制台应用,学习如何在命令行和在python中访问以太坊节点,并打... 阅读详情

相关推荐

最好用的python以太坊开发框架Populus

欢迎学习Populus框架!Populus几乎拥有以太坊区块链开发所需的一切。 Populus有以下系统依赖关系: solidity编译器:智能合约是以solidity语言编写的,然后编译到以太坊虚拟机(EVM)的二进制代码中。 Geth:官方go语言的以太坊协议的实现。Geth客户端运行区块链节点,让我们与区块链进行交互,并可以在开发过程中运行并部署到测试区块链。 此外,杨树需要一些其...

mongo_node的专栏 1479

python以太坊开发中节点和网络选择

以太坊节点 为什么我需要连接到一个节点? 以太坊协议定义了一种方法,用于人们通过网络与智能合约相互作用。为了获得关于合约、账户余额和新交易状态等最新的信息,协议需要与网络上的节点进行连接。这些节点不断地共享最新的数据。 Web3.Py是用于连接这些节点的Python库。它不在内部运行它自己的节点。 如何选择使用哪个节点? 由于以太坊的特点,这在很大程度上由个人的偏好来决定,但它会对安全性...

mongo_node的专栏 683

使用Python查询以太坊数据的后端

总结一下,通过使用Python和Web3.py库,我们可以方便地连接到以太坊网络,并查询各种以太坊数据。Web3.py是一个用于与以太坊交互的Python库,它提供了一组丰富的功能和API,用于连接到以太坊网络、查询区块链数据、执行交易等操作。然后,我们检查连接状态,如果成功连接到以太坊网络,则打印"已连接到以太坊网络",否则打印"无法连接到以太坊网络"。除了查询最新的区块高度,Web3.py还提供了许多其他功能和API,用于查询以太坊网络上的各种数据。首先,我们需要安装Web3.py库。

UgmbRuby的博客 286

如何使用python进行eth批量转账,薅羊毛必备!

Web3.py是连接以太坊的python库,它常见于去中心化应用程序 (dapps) 中,用于帮助发送交易、与智能合约交互、读取块数据以及各种其他用例。它的API从web3.js中派生而来,如果你用过web3.js,你会对它的API很熟悉。一、初始化你的 Web3 实例,连接到对应的链RPC,比如eth,bsc,heco,okex等等。rpc节点大全二、以太坊转账等上链操作,对于以太坊来说都是一笔交易,发送交易关键参数如下。(1)、nonce– 这是账号的一个交易计数。(2)、to– 目标账户。

xiangxueerfei的博客 2517

【信息科学与工程学】计算机科学与技术——第七十七篇 系统架构设计02

编号类型模型配方企业资本运作的方法/规则/条件/依据及所有的步骤(​风险处理/异常处理/危机应对关联知识法律法规和裁决依据​​由发起人(通常是知名投资人、投行或产业资本)先设立一个只有现金、无实际业务的特殊目的收购公司(SPAC),通过IPO募集资金并在交易所上市。然后在规定时间内(通常24个月)寻找一家非上市公司进行合并(De-SPAC),使目标公司迅速实现上市,规避传统IPO的复杂流程和不确定性。1.:在开曼或特拉华注册空壳公司,注入少量种子资金。2.

weixin_49199313的博客 314

使用Python构建以太坊后端

在本文中,我们将介绍如何使用Python来构建以太坊后端,并提供相应的源代码示例。通过与以太坊的交互,我们可以构建强大的去中心化应用程序,并使用Python作为后端语言来实现相应的功能。在上述代码中,我们首先连接到以太坊主网,然后使用私钥创建一个以太坊账户。以太坊后端通常需要与智能合约进行交互,可以调用智能合约的方法并获取返回结果。一般来说,以太坊后端需要与以太坊网络进行交互,例如发送以太坊交易。在上面的代码中,我们使用了Infura提供的以太坊节点作为连接提供者。方法发送签名后的交易,并打印交易哈希。

OyLinux的博客 271

从Python角度了解以太坊

区块链基础以太坊(Ethereum)的底层是区块链技术,而区块链简单而言就是由Hash值串联起来的链表结构,链表中的节点会记录交易信息,如果将节点中的信息以JSON格式描述,看起来是这个样...

weixin_30230009的博客 1201

Windows下使用python-web3.py进行以太坊Dapp开发笔记–第1篇

1.环境准备 使用的环境包括: geth python3.7 web3.py solc geth的安装及简单实用 安装 地址:https://geth.ethereum.org/downloads/ 找到对应的操作系统安装最新的版本就好(一般这里如果安装最新的,下面的web3.py也需要最新版,不然可能会出现各种错误!!!) 我的版本是: 使用(这里仅介绍创建私链及geth命令行的简单使用) A.创建私链 a.创建一个文件夹btc,用以存放以太坊私链数据: b.创建json文件genesis.json,将文件内容改为下面所示并保存: { config:{ chainId:9, ho

金融科技:使用Python搭建以太坊智能合约应用(一)

区块链金融:使用Python搭建以太坊智能合约应用(一)自2019年10月,越来越多的行业开始探索区块链项目的应用。其中除了IT行业外,便属金融业最为敏感,许多金融机构都在研究区块链。 本蒟蒻目前在北京一家金融机构的金融科技部门实习,接触到区块链技术,这篇文章整理了本人在学习关于利用Python开发以太坊智能合约的一些简单内容,供自己以后回顾和与大家分享。

蔡金航的博客 6506

DAGGER vs 传统模仿学习:为什么数据聚合能提升模型性能?

本文深入对比了DAGGER与传统模仿学习,揭示了传统方法因“分布不匹配”导致性能下降的根源。DAGGER通过动态的**数据聚合**机制,在智能体自身策略产生的状态分布上收集专家数据,从根本上解决了误差累积问题,从而显著提升了模型在实际部署中的鲁棒性和性能。

weixin_29170327的博客 234

计算机控制液压同步顶升系统,PLC四点多点同步顶升系统,同步液压顶升系统

PLC同步顶升系统系统可分为5个部分:液压泵站、PLC计算机控制系统、液压终端、位移压力检测与人机界面操作系统,位移同步精度1mm,同步控制点数:4,8,12,16,20,40,80,99;产品特点:高速置零、低速顶升,升降速度可以任意控制;液压千斤顶内置式(或外置)位移、压力传感器、均载阀,保证了顶升系统在恶劣工作环境下的高可靠性;均载阀的过载保护功能,避免了多缸顶升时常见的胀缸事故;先进的进油...

weixin_30093045的博客 1434

探索以太坊世界的利器:etherscan-python

探索以太坊世界的利器:etherscan-python 去发现同类优质开源项目:https://gitcode.com/ 在区块链的世界里,数据是至关重要的。而以太坊(Ethereum)作为全球最大的去中心化应用平台之一,其生态系统中的信息繁多且复杂。为了更便捷地访问和利用这些数据,我们为你推荐一个强大的工具——etherscan-python,这是一个专为Python开发者打造的以太坊区块浏览器...

gitblog_00020的博客 518

ansys命令流力磁耦合仿真

文章目录前言一、力磁耦合仿真流程二、静力学仿真三、力磁耦合模型构建四、静磁学仿真总结 前言 一、力磁耦合仿真流程 力磁耦合有限元仿真流程中,首先进行静力学仿真,经过前处理模块、分析计算模块和后处理模块提取三维模型单元应力,然后根据力磁耦合方程中,通过matlab将单元应力导入到磁导率与应力的关系式中,得到单元的相对磁导率。最后采用载荷传递耦合方式,进行静磁学模拟仿真,分析计算得到该载荷下试件的磁场分布。,如下图所示为力磁耦合仿真流程图: 二、静力学仿真 下图为中心预制条形缺陷的Q235钢板试..

wsfwsf128的博客 2662

Python以太坊智能合约开发指南

在以太坊上获得一个基本的智能合约是一个很简单的事,只需google查询“ERC20代币教程”,你会发现有关如何做到这一点的大量信息。以编程方式与合约交互完全是另一回事,如果你是一个Python程序员,那么教程就很少。所以写这个Python中的以太坊智能合约开发指南。 按我的统计对我们来说幸运的是,2017年Web3.py的第4版发布,这意味着现在比以往更容易运行python脚本并观察区块链上发生的...

weixin_33857230的博客 1957

Goldwasser-Micali 公钥加密系统

1、二次剩余问题 对于整数n ,定义Zn∗={a∈Zn,gcd(a,n)=1}Z^*_n=\{ a∈Z_n,gcd(a,n) =1\}Zn∗​={a∈Zn​,gcd(a,n)=1} 。当存在d∈Znd \in Z_nd∈Zn​ ,使得 d2≡a mod nd^2 \equiv a \, mod \,nd2≡amodn ,称 a 为模 n 的二次剩余;否则称 a 为模 n的二次非剩余。判断 a 是否为模 n 的二次剩余的问题称为模n 的二次剩余问题。 \rule[-10pt]{14.3cm}{0.05em}

不染心的博客 4314

从“盲控”到“预见”:聊聊永磁同步电机负载观测器(PMSM Load Observer)如何让控制更丝滑

本文深入探讨了永磁同步电机负载观测器(PMSM Load Observer)如何通过前馈补偿和转动惯量辨识技术实现智能抗扰控制。从传统‘盲控’到预见性调节,负载观测器显著减少转速波动和能耗,提升系统响应速度。文章详细解析了观测器算法架构、工程调参技巧及前沿发展趋势,为电机控制领域提供实用解决方案。

weixin_33737774的博客 406

python通过testrpc访问以太坊数据入门

搭建基于python的以太坊客户端和testrpc的开发环境 系统:Ubuntu 16.04 1.安装nodejs testrpc的安装需要使用nodejs中的npm命令。所以要先安装nodejs。 下载: nodejs官网:http://www.nodejs.org/ 从官网上找到对应的版本下载。笔者编写本文时最新的ubuntu64位版本为6.11.0

Lian_Dao的博客 6281

Unity 面试篇|(二)Unity基础篇 【全面总结 | 持续更新】

在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足。一个程序在运行(执行)的过程中所需要的硬件和软件环境运行时的主要作用是提供程序运行所需要的环境和基础设施,通过为程序提供内存分配、线程管理、类型检查、对象实例化和垃圾回收等操作来支持程序的运行公共语言运行时(Common Language Runtime,CLR)是整个.NET框架的核心,它为.NET应用程序提供了一个托管的代码执行环境。

游戏开发小Y的博客 13万+

python利用web3.py开发以太坊应用dapp的实战教程

以太坊作为最流行区块链平台,最大的特点是运行各种智能合约。我们已经出过node.js、java、php的以太坊开发实战教程,这一次是python。Python官方提供了一系列的Python包用于支持在Python应用中访问以太坊,其中最流行的就是web3.py —— 对JSON RPC接口的Python封装包。在本课程中,我们将主要使用web3.py,同时结合一些其他的包,来开发支持以太坊的Pyt...

weixin_33922672的博客 935

【Qt】QtCreator远程部署、调试程序

1)QtCreator 工具–> 选项 --> 设备 --> 添加2)设备设置向导选择–> Generic Linux Device --> 开启向导3)填写“标识配置的名称”(随便写)、设备IP、用户名 --> 下一步4)选择配对秘密文件,第一次配对,可以不填写,点击“下一步”5)点击“完成”6)设备添加成功,需要再配置SSH端口号、用户名、密码等7)保存SSH登陆密码:验证类型选择默认“Default”–> “创建新密钥”–> “Test”

郭老二 5194

OpenClaw进阶实战(二十一):工作流6:跨平台舆情监控与自动响应

摘要: 本文介绍基于OpenClaw构建自动化舆情监控系统,实现多平台数据采集、AI情感分析与智能预警。系统架构包含数据采集(微博/小红书/抖音)、消息队列、情感分析(SnowNLP/大模型API)、分级预警和自动响应模块。通过技能化开发(如微博API采集、小红书模拟登录)实现7×24小时监控,结合情感强度与传播速度分级处理负面舆情,形成"采集-分析-预警-处置"闭环,适用于企业私有化部署。

PeterPan的博客 299

Python与以太坊交互实战

Python与链上交互 环境 安装 运行 Python与链上交互 环境 Linux VM-0-11-ubuntu 4.4.0-130-generic Python3.6 vim 8.0 安装 node 和 npm 安装 testrpc和truffle ,教程里面写的很清楚 安装web3.py $ sudo pip3.6 install web3 需...

北大虫师的博客 2607

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python开发以太坊应用(1)

1.node安装ganache-cli组件、 2.运行 ganache-cli 会看到创建了一些以太坊账号 3. 安装MetaMask是一款在浏览器上使用的插件类型的以太坊钱包 4.在 MetaMask导入2步生成的账号,查看账户余额 5.尝试使用MetaMask给另外一个账号转账 ...

liubag的专栏 9271

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python相关技术_python以太坊开发的主要相关技术

使用 python 开发以太坊,有很多技术知识需要学习,也有很多资源可以推荐,我们来看几个主要的:Web3.Pyhttps://github.com/ethereum/web3.pyhttps://pypi.python.org/pypi/web3web3.py代码库现在已经比较完善了。整个代码库已经被彻底检测,基本实现JavaScript web3.js库中用户熟悉使用的100%的功能。这个库支...

weixin_39989949的博客 366

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python以太坊区块链交互将数据存入数据库

关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀。因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物。今天我们将观察该生物,并与其进行交互然后将有关它的所有数据收集到一个集中存储中供自己使用。 进行第一次设置 首先,你需要安装web3py。Web3py是...

weixin_34128411的博客 1401

以太坊智能合约编程之菜鸟教程

手把手带你走上智能合约编程之路 译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队。如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角Newsletter订阅邮件。本文的翻译获得了ConsenSys创始人Lubin先生的授权。 有些人说以太坊太难对付,于是我们(译注:指Consensys, 下同)写了这篇文章来帮助大家学习如何利用以太

陈建慧程序人生 9万+
上一篇: mybatisplus多表关联查询_ET工具_KETTLE多表关联
下一篇: linux traceroute命令详解_详解Linux系统路由跟踪指令traceroute语法、工作原理和实例说明...
weixin_39708708
博客等级 码龄9年 21粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值