摘要:比原項目倉庫地址地址一合約簡述是的一種智能合約語言,是一門聲明性謂詞語言。詳細說明請參考官方合約相關介紹。編譯合約,返回結果便是可鎖定的合約。三解鎖合約流程合約交易被區塊打包成功之后,可以查看具體的合約交易內容,找到對應的。
比原項目倉庫:
Github地址:https://github.com/Bytom/bytom
Gitee地址:https://gitee.com/BytomBlockc...
一、合約簡述equity是bytom的一種智能合約語言,是一門聲明性謂詞語言。詳細說明請參考官方equity合約相關介紹。
二、鎖定合約流程 1、合約編寫合約的編寫可以通過參考合約模板來進行構造,如果需要更進一步的了解,可以閱讀一下合約相關的說明文檔。以典型的鎖定publickey合約為例,其合約代碼如下:
contract LockWithPublicKey(publicKey: PublicKey) locks locked { clause unlockWithSig(sig: Signature) { verify checkTxSig(publicKey, sig) unlock locked } }
2、編譯合約編譯合約的工具暫未提供,建議使用api調用的方式來編譯合約。調用的方式可以使用 curl 命令行 或 postman 工具等。
curl 調用方式如下:
curl -X POST http://localhost:9888/create-key -d "{"alias": "alice", "password": "123456"}"
postman 需要到官網下載工具:
https://www.getpostman.com/
1)bytomd默認啟動或開啟auth認證,需要通過curl的方式調用API接口 獲取access toekn
curl -X POST http://localhost:9888/create-access-token -d "{"id":"token1"}"
返回結果如下:
{ "token": "token1:1fee70f537128a201338bd5f25a3adbf33dad02eae4f4c9ac43f336a069df8f3", "id": "token1", "created_at": "2018-03-20T18:56:01.043919771+08:00" }
2)選擇 basic auth 認證方式,填入 access-token 的用戶名和密碼,即上述返回結果的 token1 和 1fee70f537128a201338bd5f25a3adbf33dad02eae4f4c9ac43f336a069df8f3
3)如果合約參數包含類型PublicKey,便需要獲取合約參數 PublicKey, publicKey可通過API接口獲取。這里需要將結果保存下來,以后解鎖合約的時候需要用到 root_xpub 和 pubkey對應的 derivation_path。
4)編譯合約,返回結果program 便是可鎖定的合約。(直接編譯合約產生的是合約執行步驟,如果部署這樣的合約,用戶可以直接構造對應的參數便能解鎖)
3、構建鎖定合約交易下面表示鎖定 1000 個 777e3586d2ec47c4974d262e0ff86fd3c1c063d242d32bdef71d6d16eed6763e 類型的資產到合約 204e925f0fcc2f2618d96b7a3dce2aad28e60ab3339377760d48aea8ae8169ae417403ae7cac00c0 之中。具體內容參考構建交易的wiki: https://github.com/Bytom/byto...
4、簽名交易具體內容參考簽名交易的wiki:https://github.com/Bytom/byto...
5、提交交易具體方式參考提交交易的wiki:https://github.com/Bytom/byto...
一旦合約交易打包成功,這樣合約交易便發送成功了。
三、解鎖合約流程1、合約交易被區塊打包成功之后,可以查看具體的合約交易內容,找到對應的outputID。
其中ID字段便表示 outputID
2、根據outputID通過list-unspent-outputs 接口API 查找合約的UTXO,查看合約鎖定的資產類型和數量是否匹配
3、構建解鎖合約交易,解鎖clause unlockWithSig 的參數為 Signature, 但是簽名結果只能在 sign-transaction 成功之后才能得到,所以我們只需構建完成簽名參數即可。于之前構建的publicKey 為 4e925f0fcc2f2618d96b7a3dce2aad28e60ab3339377760d48aea8ae8169ae41,那么簽名參數為root_xpub 和 derivation_path,對應的值分別為: "dc903a862a14966d47dc6bc935c687c6cccb7a8f9c70f13bb82a41a0fe2696596cb141ff1840f90c75f8f25099f0dc50e005e1e36817d184b2b1eb1354b61575" 和 [ "010400000000000000", "0100000000000000" ] 。 其結構如下:(具體字段可參考官方智能合約文檔說明)
4、簽名交易,具體內容參考簽名交易的wiki:https://github.com/Bytom/byto...
5、提交交易,具體方式參考提交交易的wiki:https://github.com/Bytom/byto...
解鎖合約交易打包成功之后,根據 outputID 通過list-unspent-outputs 接口API 查找原來的合約 UTXO,將顯示為空,否則合約交易解鎖失敗。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24212.html
摘要:的起源來自高明的中本聰中本聰對比特幣的設計,讓整個世界進入了數字貨幣時代。比原鏈的思考馬克思哲學的否定之否定規律,事物的發展變化是螺旋式上升的。 用戶模型是比原鏈在最初就需要確定的重要數據結構, 團隊的選擇還是聚焦在兩種典型的模型系統中,Account模型和UTXO模型,和其他大多數區塊鏈設計一樣, 選擇了模型就決定了協議層的重要實現,兩種模型各有利弊,不同區塊鏈針對想聚焦的場景自身會...
摘要:揭秘區塊鏈技術從入門到精通比原鏈整體設計架構解讀視頻鏈接優酷視頻騰訊視頻本文將會給大家介紹一下比原鏈總體的技術架構。共識層確認一個塊是否合法。區塊同步又稱為被動區塊同步,如果發現存在區塊高度高于自己的其他節點時,不斷請求區塊同步。 showImg(https://segmentfault.com/img/bVbecEK);【揭秘區塊鏈技術從入門到精通】比原鏈整體設計&架構解讀視頻鏈接:...
摘要:流程總結就是下載安裝插件錢包,如果自己的不需要跳過這一步。然后將編譯后的合約參數配置在的配置文件,如下圖全紅部分是測試網合約配置參數調用插件錢包。開發出優秀的應用。 安裝使用插件錢包 1. 打開Google瀏覽器的應用商店,搜索Bystore showImg(https://segmentfault.com/img/bVbq0Ol?w=2554&h=1312); 下載鏈接:http:/...
摘要:錯誤編號內容注釋非比原標準錯誤請求超時非法的請求體為網絡錯誤編號內容注釋區塊鏈網絡類型不匹配是簽名相關的錯誤編號內容注釋需要簽名的個數超過實際需求簽名的個數簽名格式錯誤缺少主公鑰主公鑰重復為交易相關的錯誤構建交易錯誤編號內容注釋資產余額不 0XX API錯誤 編號 內容 注釋 BTM000 Bytom API Error 非比原標準錯誤 BTM001 Request t...
閱讀 2613·2021-09-26 10:17
閱讀 3237·2021-09-22 15:16
閱讀 2147·2021-09-03 10:43
閱讀 3271·2019-08-30 11:23
閱讀 3667·2019-08-29 13:23
閱讀 1316·2019-08-29 11:31
閱讀 3699·2019-08-26 13:52
閱讀 1406·2019-08-26 12:22