Python与以太坊区块链交互并使用SQL将数据存入数据库

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

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

进行第一次设置

首先,你需要安装web3py。Web3py是一个用于连接以太坊区块链的Python库。你需要事先知道的是,没有可以从中下载数据的中央管理系统。彼此共享资源的内连节点(“对等体”)存储经验证的数据副本(或其一部分)。网络执行以太坊协议,该协议定义节点彼此之间的交互规则及网络上的智能合约。

如果要访问有关交易,余额,区块或其他任何被写入区块链的信息,协议需要你连接到节点。节点不断地相互共享新数据并验证数据,因此这样你就可以确定那些是未被篡改的数据,那些是最新的数据。

你可以在第一次接触以太坊的方法中使用两种基本类型的节点:本地或托管。本地节点可以在你的计算机上运行,这意味着你首先需要下载像geth这样的客户端,它会将区块链同步到你的设备,要占用存储空间并花费大量时间来完成。对于第一次学习,托管节点是更好的选择——它由其他人控制,但你可以轻松连接到它并自己玩区块链。

去Infura并创建自己的免费帐户以访问此类托管节点。当你完成后,你可以看到mainnet主网(即以太坊区块链)和一堆testnets测试网,它们基本上可以测试你的智能合约,这样你就可以在将昂贵的代码部署到mainnet之前犯错误,并纠正它们。

这第一次我们先导入Web3对象并建立HTTP连接。

from web3 import Web3 
web3 = Web3(Web3.HTTPProvider("https://mainnet.infura.io/your-own-personal-number"))

现在你已经完成了!你可以使用web3 API浏览查询数据结构了。

查询特定区块信息

#current block number
>>> web3.eth.blockNumber
5658173
#get the content of the most recently mined block
>>> web3.eth.getBlock('latest')

此命令返回AttributeDict数据结构,该结构是key-value键值对的字典,如下所示:

AttributeDict({
   
   'difficulty': 3297284143124448,
 'extraData': HexBytes('0x65746865726d696e652d6177732d61736961312d34'),
 'gasLimit': 7999992,
 'gasUsed': 7990111,
 'hash': HexBytes('0x8c09ba67123601c08ef5d292acaffd36798ca178b7d6fecd5e1144ce8e3b9e50'),
 'logsBloom': HexBytes('0x348000240b40620836308460180004415000c8ccb260021402420721c22801ca847c625c0a89030482044001523a4d100050100250d100858381260a186312088006c154010000491216446840888200c1812088c12b06000809a808530014160000812c2ac20008a201c83380314d02242338400c0500c2a028005010988c44b0608a020400201032e10e16142b931115469824248066100b082224200222140a41a20aa2006224d608210f1a22811d03969423e8c08058100388c0800402002a000802130c40d289201900c38142a1cc0380a4010f0201040d4022200022018c5801346c168502841906940485ea1d9864044060a00000a00616004d006090'),
 'miner': '0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8',
 'mixHash': HexBytes('0x84320fd71345778b48e437f3403e9021575520ba23aaac48dd7a352c9ce31f75'),
 'nonce': HexBytes('0x98a0b1e00bfabac6'),
 'number': 5658173,
 'parentHash': HexBytes('0x01eda8a47a0151533d1afacf9b9108606d4d89a86e269dddaac9698b6fb12930'),
 'receiptsRoot': HexBytes('0xc40f774ad10ad443457c3a5a0db96b539af3007f8d351b198ca7bf2ef196b7e0'),
 'sha3Uncles': HexBytes('0x55725ec296c6c64257ed6a88d7d8c66160abe7b672f5d89bbad5487779b1d5fe'),
 'size': 
数据库和区块链:如何在区块链应用程序中使用SQL 作者:禅与计算机程序设计艺术 区块链及其应用 随着比特币的崛起,区块链技术得到了越来越多的关注。区块链是一个分布式数据库,它记录了一个分布式网络上所有节点的数据状态变化过程,让数据具有可信任性、不可篡改性和不可伪造性。目前,国内外多个行业都已经开始或正在采用区块链技术,比如信用卡、支付宝等互联网 阅读详情

相关推荐

Python编程基础教程:区块链技术入门

1.背景介绍 区块链(Blockchain)是一个分布式数据库,用于记录交易信息,并进行无需中央集权管理、透明可追溯、数据不可篡改等特性。区块链由一系列具有密码学和经济学属性的计算机网络、协议和规则组成,可以对数字货币进行转账、保护个人隐私、防止欺诈等,是构建下一代互联网应用不可或缺的一项技术。 本教程基于Python语言进行,旨在帮助读

AI架构师小马 279

Python与链上数据分析:解锁区块链数据的潜力

链上数据分析为我们提供了一个全新的视角,去理解区块链网络的运行机制和用户行为。通过Python,我们可以高效地获取、处理和分析这些数据,从而挖掘出潜在的商业价值。

Echo_Wish 333

以太坊开发中ethers库的使用

eip-155定义的eth 的chainID CHAIN_ID Chain(s) 1 Ethereum mainnet 2 Morden (disused), Expanse mainnet 3 Ropsten 4 Rinkeby 5 Goerli 42 Kovan 1337 Geth private chains (default) ethers.utils.HDNode.isValidMnemonic(): 验证助记词是否有效 ethers.utils.getAddress():转换为checkSum地址 1. send方法后面可写入rpc调用方

【一文读懂】NTN(非地面网络)技术介绍

NTN,即非地面网络,是指利用卫星、高空平台(如无人机、平流层气球等)等非地面通信基础设施来实现全球通信覆盖的网络。在5G时代,NTN主要基于5G标准,特别是5G NR(New Radio)技术,通过卫星通信扩展地面网络的覆盖范围和服务能力。NTN技术的出现和发展,为全球通信带来了新的可能性和挑战。通过不断的技术创新和标准化推进,NTN有望在未来发挥更加重要的作用,为全球用户提供无处不在的通信服务。随着6G时代的到来,我们有理由相信NTN技术将迎来更加广阔的发展前景。

u011376987的博客 1万+

【3D Slicer】阈值法测量肺部病灶体积

利用3D Slicer测量肺容积

SQ的博客 4858

python基础语法与数据结构

本文摘要: Python基础语法包含输入输出、函数、变量、数据类型及运算符等内容。输入函数input()获取键盘输入并以字符串存储,输出函数print()可格式化输出数据。函数通过def定义,可带参数和返回值,提高代码复用性。变量无需声明类型,可动态赋值。数据类型包括数字、字符串、布尔及复合类型,可通过type()查看。运算符包含算术、赋值等类型,其中复合赋值运算符如+=可简化运算。类型转换函数如int()、str()等可实现显式类型转换。这些基础语法构成Python编程的核心要素。

MM602388的博客 434

避坑指南:C# OpenCvSharp调用4K摄像头常见的5个问题及解决方案

本文针对C# OpenCvSharp调用4K高清摄像头时常见的五大难题,提供了详细的解决方案。内容涵盖分辨率设置失效、帧率卡顿、内存泄漏、硬件驱动兼容性以及性能优化实战,帮助开发者高效稳定地处理4K视频流,提升智能安防监控等项目的开发效率。

weixin_29268331的博客 424

UUVsimulator仿真

pub -r 10 /cmd_vel geometry_msgs/Twist控制运动没有反应。通过键盘控制运动,接收不到/cmd_vel消息。

Fatal__的博客 4606

离散数学 --- 图论基础 --- 图的同构,通路与回路,可达性与最短通路

同一个图(这里的图是抽象的数学定义)可以有不同的图形表示方法1.重数:两点之间的平行边的个数1.得到 n!的过程,一个图中的一个结点在另一个图中对应的结点有n种可能(黄框中定义的图来讨论),这个对应好后下一个结点有 n - 1 种可能,再下一个有n-2种,直到最后一个为1,所有可能的结果就等于 n * (n - 1) *(n - 2)*....*1 = n!2.虽然说找对应结点很困难,但不是没有规律可循的。比如1.两个相互对应的结点的度数要相同;

qq_51947882的博客 7441

win10系统下使用Mask_Rcnn训练自己的数据

版权所有,翻版必究。https://mp.youkuaiyun.com/console/editor/html/106094147 运行环境:WIN10,pycharm,相应的CUDA,CUDNN,tensorflow1.15.0,tensorflow-gpu-1.14.0,Anaconda3 第一步:Mask RCNN开源项目:https://github.com/matterport/Mask_RCNN 第一步:数据准备 首先安装labelme进行数据的标注。安装方法pip install labe

fightingxyz的博客 1750

HCIE-Datacom笔试题库

关于HCIE Datacom笔试考试题目整理!

坏坏-5的博客 609

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

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

上一篇: EOS和Ethereum哪一个区块链平台更好?
下一篇: 用php编写一个以太坊支付系统
落叶无声9
博客等级 码龄12年 443粉丝 343原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值