如何用Python和Flask框架开发以太坊智能合约

将数据存储在数据库中是任何软件应用程序的组成部分。无论数据库是如何控制的,都有一个数据库的主人。区块链技术将数据存储在区块链网络中的块中。因此,只要节点与网络同步,它们就会获得块中数据的副本。因此,该技术中没有特定的数据主数据。在本教程中,我们将编写一份智能合约(我将进一步解释)以保留区块链上的用户数据。我们将使用pythonweb3(web3的python库)来开发和部署智能合约。

环境要求Python3.6安装1.创建python虚拟环境。Virtualenv将Python软件包本地保存在项目的虚拟环境中,而不是强制您在系统范围内安装软件包。$virtualenv-p/usr/bin/python3.6venv$sourcevenv/bin/activate2。现在我们需要像Ganache这样的以太坊测试链。

Ganache为我们提供了10个默认测试帐户,每个帐户都有100个假醚用于交易。我们将使用这些帐户在合同中部署和设置各种值。

我们可以看到天然气的价格和限制,并部署ganache的主机:端口。在部署合同时我们需要这个。创建user.sol文件现在我们将编写一个具有Solidity的智能合约。Solidity是在以太坊上编写智能合约的语言。智能合约包括我们将存储在区块链上的数据,用于数据和getter方法的可选验证函数,以及用于访问数据的setter方法。例如,要注册区块链的出勤,您将拥有一组用户对象。

编译主合同时,如果看到它的bin部分,您将找到我们正在导入的库的_stringUtils.sol:StringUtils___________(它也可以用于合同)。在这部分中,我们应该在部署合同之前用库地址替换它。然后我们将库地址与主合同相关联。

您将看到已添加导入库的bin。5.现在使用我们的w3对象部署我们的主合同。使用以太坊帐户{'from':w3.eth.accounts[1]}的默认地址进行部署。

这与部署合同后在tx_receipt中获得的信息相同。6.现在将abi和contract_address存储在json文件中。这样我们就可以在flaskapi中使用它来稍后在合同中存储用户对象。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180908A0RSWT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券