木星链 木星链
Ctrl+D收藏木星链
首页 > 火必APP > 正文

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

作者:

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

01前言

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

动态 | Microworkers使用本体Ontology区块链系统改善其微任务服务:威客任务网站Microworkers与本体Ontology建立合作以改善其微任务服务。目前正使用本体的链上识别系统,让其平台上150万工作者控制他们的帐户历史和信誉数据。(Cryptobriefing)[2020/2/26]

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

02?BlockchainAPI使用方法

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

声音 | 本体(Ontology)创始人李俊:业务场景、商业机制的设计及行业拓展都在制约着公链发展:据东方财富消息,针对公链发展遇到的瓶颈问题,本体(Ontology)创始人李俊表示,公链目前都在做应用,但是实际落地的突破还不明显。公链发展到后面不仅仅是技术问题,还涉及业务场景、商业机制的设计以及在不同行业的拓展。这些难度都很大,挑战很多,需要在不同的行业设计新的规则、新的商业流程,才能把区块链技术应用进去。[2019/1/7]

2.1?GetHeight

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

本体创始人:公有链真正提供的产品是哲学和价值观:Ontology本体创始人李俊今日在第二届区块链新金融高峰论坛上表示,公有链真正提供的产品是哲学和价值观,不过这些价值观无关对错好坏,只看是否适合,“用户喜欢哪一套哲学就在哪个项目里玩”。而这一点伤,国外团队做得比较好,中国则相对较弱,更倾向于以技术、以团队、以钱服人,不过本体希望能够在这个方面做到世界领先水平。[2018/6/6]

2.2?GetHeader

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

2.3GetTransactionByHash

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

本体官方声明:本体不受NEP-5智能合约漏洞影响:本体官网发布声明称,对于NEP-5智能合约出现的存储注入漏洞问题,本体团队第一时间进行了调查分析,得出结论如下:1.ONT持有人的资金和财产是安全的,不会受到攻击的影响;2. 本体团队将继续跟进该漏洞的进展,与相关组织保持紧密沟通和技术配合,以保障ONT持有人的账户安全。[2018/5/19]

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

开发者可以通过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

标签:GETACTTRAIONbitGet会被吗MetaFactoryExtractoDAO Bullauction币黑客

火必APP热门资讯
FEX:关于WBFex上线ZDMT的公告

WBFex即将上线ZDMT,并在开放区开通ZDMT/USDT交易对,具体时间安排如下:充值时间:2019年9月6日17:00交易时间:2019年9月6日19:30提现时间:2019年9月16日1.

1900/1/1 0:00:00
KRI:提振全球经济发展 货币政策还能奏效吗?

金色财经比特币9月9日讯RickRieder是贝莱特集团全球固定收益首席投资官,也是其全球分配投资团队负责人,他最近谈到如今的经济和货币政策状况,并认为如果经济增长停滞不前.

1900/1/1 0:00:00
KKT:1.25亿美元 Bakkt为托管的比特币购买巨额保险

即将推出实物结算的比特币期货的洲际交易所旗下的交易所Bakkt在推特上称,其托管的比特币受到1.25亿美元的保单的保护.

1900/1/1 0:00:00
区块链:肖风、吴晓波联袂推荐,玲听区块链正式上线

今天,全网首档区块链商业观察专栏“玲听区块链”正式上线。该专栏由巴比特主编汤霞玲携团队重磅打造,将以长篇深度观察文章的方式,为区块链留存一份历史底稿.

1900/1/1 0:00:00
DCO:关于WPC暂停充提公告

亲爱的Dcoin用户,由于WPC节点升级,已暂停WPC的充提币服务,维护完成后我们将第一时间开放充提币服务。维护期间充提未到账的将在维护完成后自动到账,请您耐心等待.

1900/1/1 0:00:00
TPS:关于TRUE交易大赛圆满结束的公告

公告编号2019090501各位关心ZBG.com的项目方和投资者们:TRUE交易大赛已圆满结束,活动奖励均已发送完毕;查看方式:登录ZBG账户—资产管理—综合账单—“活动奖励”.

1900/1/1 0:00:00