如何使用infura开发智能合约

从以太坊运行到现在,有大量的交易被打包,导致的结果就是全节点的大小急剧增加,下载同步一个全节点往往要好几天,并且还会出现偶尔信息不同步的情况,所以大部分时候假如你想做关于全节点的开发,可以使用infura提供的节点。

关于infura

使用之前必须明白的是infura节点不掌控账户,所以想要发交易必须用自己的私钥签名,如果你下载了geth客户端,创建账户之后密码就已经被本地的geth给记住,这时发起交易就不用自己签名因为签名打包的过程已经在geth中完成,这同时也表明infura是安全的。

要使用infura首先得去infura网站上申请一个账号用于连接infura的节点

申请地址

打开之后会看见


但是正常情况下你的电脑是不会显示验证部分的(因为被墙了),所以要申请还得翻个墙(有需要可以联系我),申请之后会给你发邮件,注意接收,邮件类似于


这里分别是用于连接主网和测试网的地址

使用方法是引入web3js库之后


用这段代码得到一个连接到节点的web3对象

至此,你就可以使用infura进行以太坊的开发了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
智能合约是一种在区块链上执行的自动化合约。Python是一种常用的编程语言,也可以用于编写智能合约。在Python中,可以使用一些库来编写智能合约,例如Web3.py和Solidity.py。下面是一个使用Web3.py库编写智能合约的示例: ```python from web3 import Web3 # 连接以太坊节点 w3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/your-infura-project-id')) # 加载智能合约ABI contract_abi = [ { "constant": False, "inputs": [ { "name": "x", "type": "uint256" } ], "name": "set", "outputs": [], "payable": False, "stateMutability": "nonpayable", "type": "function" }, { "constant": True, "inputs": [], "name": "get", "outputs": [ { "name": "", "type": "uint256" } ], "payable": False, "stateMutability": "view", "type": "function" } ] # 部署智能合约 contract_address = '0x1234567890abcdef1234567890abcdef12345678' contract = w3.eth.contract(address=contract_address, abi=contract_abi) # 调用智能合约方法 transaction = contract.functions.set(42).buildTransaction({ 'from': w3.eth.accounts[0], 'gas': 100000, 'gasPrice': w3.toWei('1', 'gwei'), 'nonce': w3.eth.getTransactionCount(w3.eth.accounts[0]) }) signed_transaction = w3.eth.account.signTransaction(transaction, private_key='your-private-key') transaction_hash = w3.eth.sendRawTransaction(signed_transaction.rawTransaction) transaction_receipt = w3.eth.waitForTransactionReceipt(transaction_hash) # 获取智能合约状态 result = contract.functions.get().call() print("智能合约状态:", result) ``` 请注意,上述示例中的合约ABI和地址是虚构的,您需要根据您自己的合约来替换它们。此外,您还需要替换连接以太坊节点的URL和私钥。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值