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

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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
⾦融科技:使⽤Python搭建以太坊智能合约应⽤(⼀) ⾦融科技:使⽤Python搭建以太坊智能合约应⽤(⼀) 背景 ⾃2019年10⽉,越来越多的⾏业开始探索区块链项⽬的应⽤。其中除了IT⾏业外,便属⾦融业最为敏感,许多⾦融机构都在研究区块链。 本蒟蒻⽬前在北京⼀家⾦融机构的⾦融科技部门实习,接触到区块链技术,这篇⽂章整理了本⼈在学习关于利⽤Python开发以太坊智能合 约的⼀些简单内容,供⾃⼰以后回顾和与⼤家分享。 因为本蒟蒻⽔平⾮常有限,如有错误,欢迎各路⼤佬指正。 区块链 什么是区块链 简单来讲,区块链是⼀个链式数据结构,由⼀个个”区块 “组成。通过⼀定的机制,来保证如果某⼈想要修改区块链上的数据,其需要花费 极其⾼昂的成本才能不被⼈发现数据被修改过。⽽且每⼀个区块链的参与者都存储了整条区块链的数据的(其实也有特殊的情况),所以其 不仅要修改 ⾃⼰存储的数据,还要想办法修改其余⾄少50%的参与者存储的数据,这计算成本是极其⾼昂的。即使我们假设⼀个⼈有⾜够的 资源可以在有限的时间内做到(⼏乎不可能),他也不会那么做。因为这样做,会使得整个区块链系统不再被认可,⼈们不会承认其数据的 价值。 区块链能⽤来⼲什么 从上⾯得知,区块链具有防篡改性 (当然还有其他优秀的特性)。也就保证了数据的完全。如果两个⼈通过区块链达成⼀笔交易,那么谁也 不能耍赖。所以区块链技术可以使两个陌⽣⼈可以在交易时信任彼此。区块链解决的是⼈与⼈在⽣产过程中的信任问题。⼈们⽤区块链交易 不⽤担⼼受骗、反悔等等。 ⼈⼯智能、⼤数据和区块链技术的发展,分别对应了当今社会⽣产⼒、⽣产资料和⽣产关系的深刻变⾰。区块链⽆疑会是改变世界的技术, 只是现在⼈们还没有完全挖掘出其应⽤的价值。就像曾经的互联⽹⼀样。 什么是智能合约 ⼤家听说过的⽐特币是区块链应⽤的1.0版本,以太坊是区块链应⽤的2.0版本。⽽智能合约是以太坊中的重要概念。智能合约是部署在以太 坊中的⼀些交易规则,⽤户调⽤智能合约的特定接⼝,便可以⾃动执⾏特定的交易,同时被记录到链中。⽐如我可以写⼀个领养宠物的智能 合约,其他⽤户可以通过该智能合约,选择要领养的宠物以及⽀付费⽤,智能合约会 ⾃动改变该宠物的主⼈的记录,并上传到链中。 开发智能合约的官⽅指定语⾔是Solidity。这篇帖⼦介绍如果利⽤Python进⼀步包装智能合约,来开发具体的区块链应⽤。 项⽬编写 前期准备 2.在pycharm中安装solidity插件 ⽬前来看,开发智能合约貌似绕不开solidity。但可以⽤Python来控制solidity的编译,调⽤智能合约. 开发solidity的IDE有很多,官⽅推荐Remix.但为了让整个项⽬管理起来更⽅便,我们直接在Pycharm中安装solidity插件,在Pycharm中 开发solidity. 当需要编译时,我们只需要右键单击.sol⽂件,选择该⼯具即可。 5.安装web3.py web3.py是以太坊官⽅维护的Python版rpc接⼝封装库,⽤来完成Python和智能合约的交互。 我们利⽤pip install web3即可安装完成。 from web3 import Web3 w3 = Web3(Web3.HTTPProvider('http://localhost:7545')) accounts = w3 .eth.accounts print(accounts) 运⾏上述代码,便可以打印出10个账户的Address.这样便代表连接成功了。 上⾯的步骤全部成功实现后,我们开发的环境就搭建完成了。后⾯的⼯作就是利⽤solidity编写智能合约+Python来进⼀步包装智能合约, 使其可以⽅便得应⽤。 ** 项⽬测试 ** 因为我们现在的⾸要⽬标是整理⽤Python开发以太坊项⽬的过程,具体Solidity的语法不是我们关注的重点,所以我们这⾥直接使⽤⽹上的 ⼀个智能合约代码来研究,我们只需要知道,该程序创建了⼀个名为CrowFunding的智能合约,合约中定义了⼏个结构体和若⼲函数即 可。 pragma solidity ^0.4.21; // 主要完成产品的众筹 contract CrowdFunding{ // 投资者是结构体 struct Funder{ address addr; // 投资者地址 uint amount; // 投资⾦额 } // 采⽤结构体来描述众筹产品 struct Product{ address addr; // 如果众筹成功,则⾦

文档评论(0)

139****1921 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档