首页 币圈新闻 Web3.py教程:如何使用Python转账

Web3.py教程:如何使用Python转账

运用web3.py天生一个在以太坊搜集上运用的帐户特殊大略1个比特币价格多少。这将是十六进制的以太坊地方和值。"type":"event"}]' 咱们须要运用json举行领会: >>>abi=json.loads(abi) 咱们还须要报告web3.py在以太坊搜集的何处不妨找到那些代码。

这将是一个教程,引导python开拓职员进修web3.py,一个区块链(以太坊)库的普通常识比特币最新价格。咱们将在python证明器中做很多这上面的处事。

提防:为了安定起见,咱们将经过一个尝试搜集举行转账比特币之父。一切那些沟通的本领都不妨在以太坊主搜集上运用。

主假如以次几个办法如何购买比特币

1. 安置

2. 创造贯穿

3. 初始化

4. 创造帐户

5. ens帐户

6. 转账

安置

咱们将运用pip从吩咐行安置web3.py比特币创下新高

$pip3installweb3

对于同声安置了python 2和3的用户,您该当查看一下pip吩咐挪用哪个本子比特币如何挖矿。有些默许值为2.7:

$pip-vpip10.0.1from/library/python/2.7/site-packages/pip-10.0.1-py2.7.egg/pip(python2.7)$pip3-vpip20.0.2from/usr/local/lib/python3.7/site-packages/pip(python3.7)

其余,即使您运用的是virtualenv,则这边有少许相关为web3.py树立纯洁情况的文书档案比特币交易网

树立贯穿

要与搜集交互,您要么必需托管一个节点,要么运用为您托管一个节点的效劳比特币挖矿什么意思

由于这是一个基础教程,以是咱们将运用一个效劳比特币是什么。最受欢送的是infura。您不妨树立本人的免费帐户(此处的证明),也不妨运用底下的产物id。赢得名目id和api端点至关要害,这将是咱们到区块链的api端点,而领会风度板会有所扶助。

复制并保证在地方前增添https://一个比特币要挖多久

有了那些比特币行情实时走势图,就不妨运用python贯穿到区块链了!

初始化

让咱们启用咱们的python证明器比特币汇率。这大概因您的python安置而异,但常常不妨经过运转常常在python文献之前安置的任何要害字来实行。对于安置了pyton 2和pyton 3的mac iterm来说,它是:

$python3

python3.8.2[clang6.0(clang-600.0.57)]ondarwintype\”help\”,\”copyright\”,\”credits\”or\”license\”formoreinformation.>>>

要查看咱们一切的树立能否精确打击比特币挖矿,请运转您的python证明器和以次吩咐:

>>>fromweb3importweb3,httpprovider>>>importjson

上头的吩咐从web3.py导出了少许重要本领,咱们将运用它们来贯穿到区块链以及当地json库比特币最新行情

接下来,咱们将创造一个东西w3,该东西将经过infura api端点(以https://发端)举行初始化比特币汇率。在本教程的其他局部中,它将变成web3.py与区块链一道处事的重要办法。

>>>w3=web3(web3.httpprovider(\”https://rinkeby.infura.io/v3/8e4cd4b220fa42d3ac2acca966fd07fa\”))

提防:您须要在infura api地方前方增添https://比特币工厂,要不会展示缺点!

咱们还须要增添少许中央件来扶助咱们运用infura和rinkeby testnet四川比特币矿场集体断电

>>>fromweb3.middlewareimportgeth_poa_middleware>>>w3.middleware_onion.inject(geth_poa_middleware,layer=0)

此刻看看十足能否成功比特币实时行情,咱们运转:

>>>w3.isconnected()

即使您赢得true比特币汇率,那就祝贺!您已贯穿到区块链!

1. 即使获得false比特币一天跌去4000美,则不妨查看以次几件事:

2. 即使必需从新启用证明器比特币客户端,则必需从新导出库并从新初始化变量

3. 您能否精确复制了infura api密钥比特币行情

web3.py教程:怎样运用python转账

4. 您能否已安置web3.py并安置并导出了web3和httpprovider库比特币工厂

5. 您能否在api密钥前方加上了https比特币挖矿软件://?

创造一个帐户

即使咱们想在区块链上邮汇,则须要一个以太坊账户比特币挖矿是什么。以太坊账户是以太坊区块链上身份的重要单元-账户的地方是在搜集上怎样辨别用户的地方。帐户体例的普通是鉴于公钥加密的分别身份和议。实质上,区块链搜集上的身份经过其大众地方对应方(由所有搜集持有)对来自单个私钥(由单个用户神秘持有)的数字出面举行身份考证来确认。固然它有很大的用户领会妨碍,但它真实供给了一个赶快的平等身份考证和议。

运用web3.py天生一个在以太坊搜集上运用的帐户特殊大略300比特币

提防:在接下来的几个办法中比特币减半,我将冲破少许性准则:

1)我将天生一个熵(随机性)不及的私钥

2)我将在线颁布私钥比特币一个多少人民币

在本教程除外,我不会运用此密钥,它不过出于培养手段比特币今日价格行情。您该当一直运用精确的私钥处置,比方geth或metamask,而且长久不要公然共享您的私钥。

web3.py教程:怎样运用python转账

>>>my_account=w3.eth.account.create(\’nobodyexpectsthespanishinquisition!\’)>>>my_account._address\’0x5b580eb23fca4f0936127335a92f722905286738\’>>>my_account._private_keyhexbytes(\’0x265434629c3d2e652550d62225adcb2813d3ac32c6e07c8c39b5cc1efbca18b3\’)

上头的吩咐运用输出的字符串天生my_account东西,该东西包括一个私钥(my_account._private_key)及其关系的以太坊地方(my_account._address)比特币价格。然而,因为已公开拓布该密钥,所以有人不妨天生和运用沟通的私钥。

所以,用户常常将私钥创造和处置委派给称为存户端(如geth)或皮夹子(如metamask)的软硬件比特币大跌。那些名目供给了一种特殊安定的办法来天生和处置用来区块链交互的私钥。

ens帐户

以太坊地方是长的十六进制数比特币浏览器。它们简直不大概输出或记取,以是以太坊社区创造了以太坊称呼体例(ens)。它的长处与域名体例沟通,它将网站效劳器号(216.58.194.46)替代为生人可读的称呼(谷歌). 大普遍ens称呼运用.eth域,而不是.com域。

比方我有一个以太坊帐户,地方为0x4d3dd8471a289e820aa9e2dc5f437c1b2e22f598,然而我运用ens将更易读的称呼coogan.eth映照到该地方一个比特币要挖多久。即使您在扶助ens的运用或名目中键入那些实质(比方web3.py!),它将替代为以太坊十六进制地方。悲惨的是,咱们没辙在本教程中运用它,由于.eth域名只能在主网上运用,但大概鄙人一教程中运用!

转账

在结果一节中,咱们将从方才创造的帐户中向另一个以太坊帐户发送少许钱什么是比特币。十足来自python证明器!

加密钱币美元的价钱极不宁静1个比特币价格多少。这惹起了企业的迟疑——干什么你会接收一种价钱不决定的钱币?

然而,在以太坊生态体例中创造了一种别致的处置本领比特币汇率。以太坊被称为“寰球计划机”,由于它是一个散布式体例,承诺开拓职员上传并实行本人的代码。以这种办法上传到以太坊的代码称为智能合约。将其上传到搜集后,它将变成一个独力的实业,具备本人的地方,外存保存和搜集考察权力。智能合约催产了一个充分的以太坊开拓者社区,我社区既富裕创作力又不懈地应付百般挑拨,比方区块链固有的价钱振动。

以太坊创造宁静的价格根源,一群开拓职员编写了名为dai的代码并将其上载到以太坊比特币矿池。这是一个数字令牌,一直价格约1美元。持有dai代币后,咱们不妨与其余用户以与美元沟通的汇率对换它。咱们此刻就要做!

合约范例化

开始要与开拓职员上传到以太坊的代码举行交互,咱们须要领会上传的代码公然了哪些本领一比特币等于多少人民币。web3.py本机领会怎样与中心的以太坊软硬件对接,然而须要与第三方代码交互的引导。咱们经过为web3.py供给运用步调二进制接口(abi)供给该指南。与运用步调编制程序接口(api)一致,abi承诺咱们的呆板领会对咱们可用的功效以及那些功效须要的参数。abi在区块链上不行用,由开拓职员在github或etherscan等网站上供给。

底下是咱们将要运用的testnet dai abi比特币今日价格行情,请单击并复制所有代码片断:

提防:此代码很长比特币今日价格行情,请更加提防完备复制!

abi=\'[{\”constant\”:true,\”inputs\”:[],\”name\”:\”name\”,\”outputs\”:[{\”internaltype\”:\”string\”,\”name\”:\”\”,\”type\”:\”string\”}],\”payable\”:false,\”statemutability\”:\”view\”,\”type\”:\”function\”},{\”constant\”:false,\”inputs\”:[{\”internaltype\”:\”address\”,\”name\”:\”spender\”,\”type\”:\”address\”},{\”internaltype\”:\”uint256\”,\”name\”:\”value\”,\”type\”:\”uint256\”}],\”name\”:\”approve\”,\”outputs\”:[{\”internaltype\”:\”bool\”,\”name\”:\”\”,\”type\”:\”bool\”}],\”payable\”:false,\”statemutability\”:\”nonpayable\”,\”type\”:\”function\”},{\”constant\”:true,\”inputs\”:[],\”name\”:\”totalsupply\”,\”outputs\”:[{\”internaltype\”:\”uint256\”,\”name\”:\”\”,\”type\”:\”uint256\”}],\”payable\”:false,\”statemutability\”:\”view\”,\”type\”:\”function\”},{\”constant\”:false,\”inputs\”:[{\”internaltype\”:\”address\”,\”name\”:\”from\”,\”type\”:\”address\”},{\”internaltype\”:\”address\”,\”name\”:\”to\”,\”type\”:\”address\”},{\”internaltype\”:\”uint256\”,\”name\”:\”value\”,\”type\”:\”uint256\”}],\”name\”:\”transferfrom\”,\”outputs\”:[{\”internaltype\”:\”bool\”,\”name\”:\”\”,\”type\”:\”bool\”}],\”payable\”:false,\”statemutability\”:\”nonpayable\”,\”type\”:\”function\”},{\”constant\”:true,\”inputs\”:[],\”name\”:\”decimals\”,\”outputs\”:[{\”internaltype\”:\”uint8\”,\”name\”:\”\”,\”type\”:\”uint8\”}],\”payable\”:false,\”statemutability\”:\”view\”,\”type\”:\”function\”},{\”constant\”:false,\”inputs\”:[{\”internaltype\”:\”address\”,\”name\”:\”spender\”,\”type\”:\”address\”},{\”internaltype\”:\”uint256\”,\”name\”:\”addedvalue\”,\”type\”:\”uint256\”}],\”name\”:\”increaseallowance\”,\”outputs\”:[{\”internaltype\”:\”bool\”,\”name\”:\”\”,\”type\”:\”bool\”}],\”payable\”:false,\”statemutability\”:\”nonpayable\”,\”type\”:\”function\”},{\”constant\”:false,\”inputs\”:[{\”internaltype\”:\”address\”,\”name\”:\”to\”,\”type\”:\”address\”},{\”internaltype\”:\”uint256\”,\”name\”:\”value\”,\”type\”:\”uint256\”}],\”name\”:\”mint\”,\”outputs\”:[{\”internaltype\”:\”bool\”,\”name\”:\”\”,\”type\”:\”bool\”}],\”payable\”:false,\”statemutability\”:\”nonpayable\”,\”type\”:\”function\”},{\”constant\”:true,\”inputs\”:[{\”internaltype\”:\”address\”,\”name\”:\”owner\”,\”type\”:\”address\”}],\”name\”:\”balanceof\”,\”outputs\”:[{\”internaltype\”:\”uint256\”,\”name\”:\”\”,\”type\”:\”uint256\”}],\”payable\”:false,\”statemutability\”:\”view\”,\”type\”:\”function\”},{\”constant\”:true,\”inputs\”:[],\”name\”:\”symbol\”,\”outputs\”:[{\”internaltype\”:\”string\”,\”name\”:\”\”,\”type\”:\”string\”}],\”payable\”:false,\”statemutability\”:\”view\”,\”type\”:\”function\”},{\”constant\”:false,\”inputs\”:[{\”internaltype\”:\”address\”,\”name\”:\”spender\”,\”type\”:\”address\”},{\”internaltype\”:\”uint256\”,\”name\”:\”subtractedvalue\”,\”type\”:\”uint256\”}],\”name\”:\”decreaseallowance\”,\”outputs\”:[{\”internaltype\”:\”bool\”,\”name\”:\”\”,\”type\”:\”bool\”}],\”payable\”:false,\”statemutability\”:\”nonpayable\”,\”type\”:\”function\”},{\”constant\”:false,\”inputs\”:[{\”internaltype\”:\”address\”,\”name\”:\”to\”,\”type\”:\”address\”},{\”internaltype\”:\”uint256\”,\”name\”:\”value\”,\”type\”:\”uint256\”}],\”name\”:\”transfer\”,\”outputs\”:[{\”internaltype\”:\”bool\”,\”name\”:\”\”,\”type\”:\”bool\”}],\”payable\”:false,\”statemutability\”:\”nonpayable\”,\”type\”:\”function\”},{\”constant\”:true,\”inputs\”:[{\”internaltype\”:\”address\”,\”name\”:\”owner\”,\”type\”:\”address\”},{\”internaltype\”:\”address\”,\”name\”:\”spender\”,\”type\”:\”address\”}],\”name\”:\”allowance\”,\”outputs\”:[{\”internaltype\”:\”uint256\”,\”name\”:\”\”,\”type\”:\”uint256\”}],\”payable\”:false,\”statemutability\”:\”view\”,\”type\”:\”function\”},{\”inputs\”:[],\”payable\”:false,\”statemutability\”:\”nonpayable\”,\”type\”:\”constructor\”},{\”anonymous\”:false,\”inputs\”:[{\”indexed\”:true,\”internaltype\”:\”address\”,\”name\”:\”from\”,\”type\”:\”address\”},{\”indexed\”:true,\”internaltype\”:\”address\”,\”name\”:\”to\”,\”type\”:\”address\”},{\”indexed\”:false,\”internaltype\”:\”uint256\”,\”name\”:\”value\”,\”type\”:\”uint256\”}],\”name\”:\”transfer\”,\”type\”:\”event\”},{\”anonymous\”:false,\”inputs\”:[{\”indexed\”:true,\”internaltype\”:\”address\”,\”name\”:\”owner\”,\”type\”:\”address\”},{\”indexed\”:true,\”internaltype\”:\”address\”,\”name\”:\”spender\”,\”type\”:\”address\”},{\”indexed\”:false,\”internaltype\”:\”uint256\”,\”name\”:\”value\”,\”type\”:\”uint256\”}],\”name\”:\”approval\”,\”type\”:\”event\”}]\’

咱们须要运用json举行领会比特币今日价格行情

>>>abi=json.loads(abi)

咱们还须要报告web3.py在以太坊搜集的何处不妨找到那些代码比特币之父。咱们运用以次代码:

>>>address=\’0xc3dbf84abb494ce5199d5d4d815b10ec29529ff8\’

而后,咱们运用abi和地方范例化智能合约东西比特币减半。这将使咱们不妨考察代码公然的因变量:

>>>dai=w3.eth.contract(address=address,abi=abi)

为了尝试咱们能否已正真实例化公约比特币价格今日行情,咱们将挪用一个因变量,该因变量报告咱们该合约持有几何dai:

>>>dai.functions.totalsupply().call()10100000000000101001376883458034812485564519

(运转此步调时比特币价格实时行情,余额大概会有所各别)

创造买卖

要从咱们的西班牙查问帐户(my_account)变化dai关于防范比特币风险的通知,咱们将运用dai智能合约的变化功效,如次所示:

咱们不妨看到咱们须要向合约传播两个参数:to,这将是十六进制的以太坊地方和值,即uint256比特币挖矿什么意思。对于体味充分的开拓职员来说,处置256位无标记平头(uint256)大概是一个挑拨。web3.py供给了一种本领,不妨将值从平头变换为此智能合约所需的方法tohex。咱们发送10个dai,而且因为咱们要发送的数目少于16个,所以咱们只需在其前方安置一个0x。对于地方,请输出您要寄给dai的地方。

所以一个比特币值多少人民币,咱们的买卖暂时如次所示:

transaction=dai.functions.transfer(to_address,0x10)

那些参数对于dai合约很有效(咱们不会在此处展示缺点),然而咱们须要更多参数以使买卖在以太坊搜集上运转比特币最新行情。那些值是chainid,gas和nonce。

.buildtransaction({\’chainid\’:4,\’gas\’:70000,\’nonce\’:w3.eth.gettransactioncount(my_account._address)})

chainid扶助web3.py领会将工作发送给哪个搜集比特币行情走势图。各别的搜集有各别的怪事(正如咱们在一发端为rinkeby安置中央件时所看到的),这无助于于web3.py精确绑缚买卖。rinkeby的搜集id为4,这是搜集id的完备列表。

gas是您向搜集上的河工付出的用来付出买卖用度的小笔金钱比特币价格实时行情

nonce是每个以太坊账户专用的全部变量比特币最新价格。它的效率与账本底部的数字沟通:它承诺对来自各别帐户的付款举行精确排序。发送每笔买卖后,它递加一。web3.py有一种搜索地方暂时随机数的本领:w3.eth.gettransactioncount(ethereum_address)。

咱们将运用web3.py本领.buildtransaction将这三个变量兼并到咱们的买卖中比特币吧。我还要增添伙伴的以太坊地方,并寄给他10dai:

>>>transaction=dai.functions.transfer(\’0xafc2f2bbd4173311be60a7f5d4103b098d2703e8\’,0x10).buildtransaction({\’chainid\’:4,\’gas\’:70000,\’nonce\’:w3.eth.gettransactioncount(\’0x5b580eb23fca4f0936127335a92f722905286738\’)})

签订和发送买卖

此刻咱们有了买卖,咱们须要运用私钥对其举行出面比特币工厂。这即是以太坊的点对点和议怎样领会要邮汇的账户。要举行出面,咱们将买卖东西和my_account._private_key放入以次因变量中:

>>>signed_txn=w3.eth.account.signtransaction(transaction,\’0x265434629c3d2e652550d62225adcb2813d3ac32c6e07c8c39b5cc1efbca18b3\’)

经过已出面的买卖,咱们此刻要做的即是经过infura api端点将其发送给搜集怎么挖比特币。咱们运用以次吩咐经过w3东西实行此操纵:

>>>txn_hash=w3.eth.sendrawtransaction(signed_txn.rawtransaction)

即使胜利的话比特币挖矿软件,祝贺!您方才运用python举行邮汇了!

要搜索您的买卖,您不妨打字与印刷txn_hash并将字符串值带回einscan for rinkeby比特币暴涨。这是我的哈希值(您会有所各别!):

>>>txn_hashhexbytes(\’0xc5f98cbe6f1eaef16916b148e6c4ae926b11ab9dde750e188362745da39d560e\’)

如您所见,运用web3.py为您的运用步调供给了百般大概性比特币爆仓是什么意思

正文根源比特币行情走势图:陀螺财政和经济原文题目:web3.py教程:怎样运用python转账

关于作者: szhbsd

热门文章