宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > USDT > 正文

本体技术视点 | Python智能合约开发学起来

作者:

时间:1900/1/1 0:00:00

01前言

在之前的技术视点文章中,我们介绍了目前本体主网支持的智能合约体系以及相应的智能合约开发工具SmartX。很多小伙伴都想上手练一练。在本期的本体技术视点中,我们将正式开始讲述智能合约语法部分。本体的智能合约API分为7个模块,分别是Blockchain&BlockAPI、RuntimeAPI、StorageAPI、NativeAPI、UpgradeAPI、ExecutionEngineAPI以及Static&DynamicCallAPI。本期我们将介绍?Blockchain&BlockAPI,这是本体智能合约体系中最基础的部分。其中,BlockchainAPI支持基本的区块链查询操作,如获取当前块高等;BlockAPI支持基本的区块查询操作,如查询指定区块交易数等。同时,文末将提供视频讲解。

现场 | 本体去中心化数字身份解决方案DeID集成至波卡平台:金色财经现场报道,在10月29日由 Web3 基金会主办的Web3大会上,本体宣布正在波卡(Polkadot)链上进行开发,将本体去中心化数字身份(Decentralized Identity, DeID)集成到波卡链上,并计划搭建波卡平行链。该合作将加速本体与波卡链上生态的融合,为用户带来更深层次的信任和更为自主的数据管理体验。此外,本体信用分 OScore和DDXF 等技术也将逐步应用到波卡生态中,使其它区块链也可便捷地使用本体 DeID 解决方案。[2020/10/29]

在这之前,小伙伴们可以在本体智能合约开发工具SmartX中新建一个合约,跟着我们进行操作。

本体与德国初创企业Spherity合作 加快开发数字身份解决方案:本体(Ontology)近日与德国数字身份和云钱包供应商Spherity合作,加快产品和企业数字身份解决方案的开发。此次合作将使Spherity的云边缘钱包与Ontology (ONT)区块链集成,并允许本体使用Spheriy的去中心化数字身份解决方案。双方将共同努力利用Spherity现有的客户基础,创建概念验证试点,演示在供应链、移动和制药领域的数字身份应用程序。此外本体和Spherity还将在研究和营销活动方面进行合作。(Cointelegraph)[2020/5/23]

02?BlockchainAPI使用方法

智能合约函数的引用与Python的引用如出一辙。开发者可以根据需要引入相应的函数。例如,下面语句引入了获取当前最新块高函数GetHeight和获取区块头函数GetHeader。

本体将于23时迁移Phecda节点,期间或出现区块产出延迟:本体(Ontology)官方发推称,我们计划于美东时间11时(北京时间23时)将共识节点Phecda迁移到BisonTrails平台。在此期间可能会出现区块产出延迟,预计将在15分钟内恢复。[2020/3/12]

2.1?GetHeight

开发者可以使用GetHeight来获取当前最新块高,具体例子如下。在后面的例子中,为了节省空间,我们将省略Main函数,小伙伴在练习的时候可以根据需要加入。

2.2?GetHeader

开发者可以使用GetHeader来获取区块头,参数是某个块的块高。具体例子如下:

动态 | 本体发布智能合约虚拟机Ontology Wasm-JIT:近日,本体(Ontology)在其最新底层版本Aristotle 2020之Ontology 2.0中推出了区块链Wasm虚拟机Ontology Wasm-JIT。作为由Google、Apple、Microsoft等浏览器厂商同时支持的中间代码,Wasm具备运行高效、内存安全、无未定义行为和平立等特点。Ontology Wasm-JIT和解析执行版本兼容,开发者无需投入新的学习成本,可以把更多时间精力集中于具体的业务开发。在业务层面,单条合约指令的执行实际能耗更低,从而减少用户的Gas支付费用,实现降本增效。[2020/2/27]

2.3GetTransactionByHash

开发者可以使用GetTransactionByHash函数通过交易哈希获取交易。交易哈希以bytearray的格式,作为参数传入GetTransactionByHash。这个函数的关键在于如何转换将十六进制格式的交易哈希转变为bytearray格式的交易哈希。我们以16进制格式的交易哈希为例,实现将十六进制格式的交易哈希转变为bytearray格式的交易哈希。示例哈希如下:

首先,将该交易哈希反序得到:

开发者可以通过SmartX提供的转换工具HexNumber(littleendian)<-->Number实现这一步。然后,将其转成bytearray格式:

开发者可以通过SmartX提供的转换工具String<-->ByteArray实现这一步。最后,将得到的bytearray转换成相应的字符串:

GetTransactionByHash函数通过交易哈希获取交易的例子如下:

2.4?GetTransactionHeight

开发者可以使用GetTransactionHeight函数通过交易哈希获取交易高度。我们还是以上个例子中的哈希为例:

2.5?GetContract

开发者可以使用GetContract函数通过合约哈希获取合约。其中,合约哈希的转换过程与上面讲到的交易哈希转换过程一致。

2.6?GetBlock

开发者可以使用GetBlock函数获取区块。有两种方法可以获取指定区块:1.通过块高获取区块:

2.通过区块哈希获取区块:

03?BlockAPI使用方法

BlockAPI中可供引用的函数有三个,它们分别是GetTransactions、GetTransactionCount和GetTransactionByIndex。我们依次介绍下这三个函数。

3.1?GetTransactionCount

开发者可以使用GetTransactionCount函数获取指定区块的交易数量。

3.2?GetTransactions

开发者可以使用GetTransactions函数获取获取指定区块的所有交易。

3.3GetTransactionByIndex

开发者可以使用GetTransactionByIndex函数获取指定区块的指定交易。

04?后记

Blockchain&BlockAPI在智能合约中起到查询区块链数据和区块数据的作用,是智能合约最不可缺少的一部分。在后面的技术视点中,我们将讨论如何使用其它API,探讨它们和本体区块链的交互。本期讲述的所有语法部分我们提供了中文视频,小伙伴们可以观看和学习。

视频观看链接:https://v.qq.com/x/page/x0822d6u8xl.html

*详细代码信息可能显示不全,可参考:https://mp.weixin.qq.com/s/t1sX3aDi5WVTthnc4sMHkQ

标签:GETTRAACTAPIDOGETF币ASTRADAO价格CompactRapidz

USDT热门资讯
反人口贩卖专家敦促美国国会监管加密货币

据CoinDesk报道,在今日举行的美国国际安全与国际贸易与金融小组委员会上,FinancialIntegrityNetwork产品开发和服务副总裁DavidMurray在演讲时建议国会创建新的金融机构监管加密矿工.

1900/1/1 0:00:00
关于LOEx国际站支持SPU钱包升级

尊敬的LOEx用户:为了支持SPU钱包升级,LOEx国际站将于新加坡时间9月6日19:00—9月13日19:00期间暂停SPU充币业务;钱包升级完成后,于9月13日19:00开放SPU充币业务.

1900/1/1 0:00:00
巴比特MatPool矿池宣布加入LAD-NPoS众星揽月节点竞选

日前,巴比特MatPool矿池宣布加入LAD-NPoS众星揽月节点竞选。LAD-NPoS众星揽月节点竞选规则发布以来,受到了众多业内矿池的关注,巴比特MatPool矿池以“发现价值,创造价值,分享价值”为理念,也对LAD作为全球率先实.

1900/1/1 0:00:00
以太坊和“七个小矮人”

作者|JoelMonegro 编辑|Summer 上世纪60年代的计算机行业人士普遍或说,市场是IBM和“七个小矮人”的天下.

1900/1/1 0:00:00
新版IEO打新教程(手机端)

新版IEO打新教程: 1、APP首页点击“活动中心”,进入IEO活动页面2、选择并点击相应的IEO活动,进入IEO活动详情页面3、在打新正式开始前,完成分享或邀请活动.

1900/1/1 0:00:00
Gate.io 官方Youtube频道《征服区块链》直播介绍及进展公告

由Gate.io官方制作的《征服区块链》直播栏目在Youtube频道上一经播出就深受Gate.io用户以及热切关注区块链行业伙伴们的关注与喜爱.

1900/1/1 0:00:00