比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

本體技術視點 | Python智能合約開發學起來_ION

Author:

Time:1900/1/1 0:00:00

01前言

在之前的技術視點文章中,我們介紹了目前本體主網支持的智能合約體系以及相應的智能合約開發工具SmartX。很多小伙伴都想上手練一練。在本期的本體技術視點中,我們將正式開始講述智能合約語法部分。本體的智能合約API分為7個模塊,分別是Blockchain&BlockAPI、RuntimeAPI、StorageAPI、NativeAPI、UpgradeAPI、ExecutionEngineAPI以及Static&DynamicCallAPI。本期我們將介紹?Blockchain&BlockAPI,這是本體智能合約體系中最基礎的部分。其中,BlockchainAPI支持基本的區塊鏈查詢操作,如獲取當前塊高等;BlockAPI支持基本的區塊查詢操作,如查詢指定區塊交易數等。同時,文末將提供視頻講解。

本體發布具備Wasm-JIT功能的Multi-VM:在Aristotle 2020路線中,Ontology 2.0版本帶來了具備Wasm-JIT功能的Multi-VM,支持Python、Rust、C++和 C#多種語言,部署在上面的合約能夠像在同一臺電腦上運行多個虛擬操作系統一樣無縫交互。Ontology Multi-VM致力于滿足更廣泛的業務需求,帶來更高的執行效率與更低廉的 Gas 費用。通過有效融合各個虛擬機背后的生態,使得開發者擁有更多選擇來使用自己所熟悉的語言和工具進行開發,從而降低技術學習的門檻,大大提升開發效率。[2020/3/12]

在這之前,小伙伴們可以在本體智能合約開發工具SmartX中新建一個合約,跟著我們進行操作。

動態 | 本體與ParityGame合作開發區塊鏈游戲平臺:據bitcoinexchangeguide報道,公共區塊鏈提供商本體(Ontology)宣布與游戲開發商ParityGame合作開發一款基于Ontology開源技術的游戲平臺。此外,兩者還計劃將區塊鏈添加到游戲項目和資產市場Skrskins中。[2019/2/13]

02?BlockchainAPI使用方法

智能合約函數的引用與Python的引用如出一轍。開發者可以根據需要引入相應的函數。例如,下面語句引入了獲取當前最新塊高函數GetHeight和獲取區塊頭函數GetHeader。

2.1?GetHeight

聲音 | 本體(Ontology)創始人李俊:業務場景、商業機制的設計及行業拓展都在制約著公鏈發展:據東方財富消息,針對公鏈發展遇到的瓶頸問題,本體(Ontology)創始人李俊表示,公鏈目前都在做應用,但是實際落地的突破還不明顯。公鏈發展到后面不僅僅是技術問題,還涉及業務場景、商業機制的設計以及在不同行業的拓展。這些難度都很大,挑戰很多,需要在不同的行業設計新的規則、新的商業流程,才能把區塊鏈技術應用進去。[2019/1/7]

開發者可以使用GetHeight來獲取當前最新塊高,具體例子如下。在后面的例子中,為了節省空間,我們將省略Main函數,小伙伴在練習的時候可以根據需要加入。

2.2?GetHeader

本體將于3月底上線測試網絡及路線圖:據本體(ONT)官方社區,ONT將在3月底上線測試網絡和路線圖。據早先報道,本體項目曾入選中國工信部開源計劃。目前ONT全球均價2.06美元,漲幅32.02%。[2018/3/28]

開發者可以使用GetHeader來獲取區塊頭,參數是某個塊的塊高。具體例子如下:

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

Tags:GETACTTRAIONtogetherbnb薇拉雙人互動act幣價格今日行情美元Decentralized Tower DefenseRevolutionVR

SHIB最新價格
MXC平臺第二期“點亮計劃”——CZT上線公告_SDT

尊敬的MXC用戶: 根據MXC平臺第二期“點亮計劃”結果顯示,點亮人數已滿足MXC平臺的考察要求.

1900/1/1 0:00:00
分析:BTC市值占比達到2年高位,但價格可能面臨阻力_LON

根據Tradingview.com的圖表,BTC的市值占比今天超過72.5%。比特幣的價格回到了五位數,使其保持在區間范圍內,但山寨幣并沒有出現類似的勢頭.

1900/1/1 0:00:00
李禮輝:超主權數字貨幣有可能從根本上重構全球的貨幣體系_區塊鏈

中國銀行原行長、中國互聯網金融協會區塊鏈工作組組長李禮輝在中國人民銀行主辦的《中國金融》雜志上發表文章表示,關于法定數字貨幣的基本架構,目前意見并不一致,例如.

1900/1/1 0:00:00
WIN首次空投分發完成_NAN

親愛的用戶: Binance已完成WINk對TRON用戶首次空投的分發,請在“用戶中心-分發記錄”查看分發結果.

1900/1/1 0:00:00
[8-3]關于IXX.com開放XRX交易市場的公告_COM

親愛的用戶:? IXX.com平臺將于2019年8月3日15:00開放XRX/USDT交易市場,現已開放XRX充值、提幣功能.

1900/1/1 0:00:00
這款錢包竟然可以追回被黑客盜取的數字資產_AXO

導語:當MXW資產被惡意盜取或轉移至錯誤地址時,通過提交實名認證的信息到相關部門,還有可能找回。1數字貨幣市場的狂熱催生了許多的財富神話,另外一面也引來了有心人的覬覦,盜竊事件頻繁發生.

1900/1/1 0:00:00
ads