【Secret Contracts】Secret Contracts 簡介

PikachuEXE
·
·
IPFS
Secret Network智能合約,只有簡介,技術細節懂看的人去官網看不是更好?

學完及寫完(至少暫時還想不到要再練甚麼)練習用專案後順便寫個簡介


連結


簡介

Secret Network簡介我懶得寫,去看現成的:CoinEx研究院|新一代隱私公鏈專案:... 

Secret Contracts就是在Secret Network上運行的智能合約,先貼從上面官網抄的圖:

就是寫源代碼定義左邊一些東西(本文不會逐項詳說),編譯後把程式碼檔扔上區塊鏈,然後運行就像下圖:

一個「合約」有資料有各種「入口點」(Entrypoint),用傳達查詢及執行等訊息並跟資料互動,有資料(狀態),定義各種訊息(輸入輸出,跟HTTP一樣有要求及回應)


智能合約四大類訊息/行動

Instantiation - 實例化

上載程式碼檔到區塊鏈並不會自動生成一個「合約」(有原因的),需要手動執行命令(及付費)來生成合約(可輸入各種東西,一個程式碼檔可生成多個合約),一個「合約」會有地址等東西,生成後就開始可以用地址對合約傳其他訊息啦(地址用來指明訊息傳送目標合約),合約會指向一個程式碼項目(預設為用來生成合約的那個),所以不能用一個合約來生成其他合約,生成合約只能用某個程式碼項目

Query - 查詢

即是讀取資料(不改變資料),跟網址一樣可以放各種東西進去(合約有定義就行),公開查詢跟其他非Secret Network智能合約沒甚麼分別,不過有另一種等下面談

Execute - 執行

不是處決即是執行可能會改變資料的行動,最後是否改變資料或失敗或出錯等就看合約了,每次都要簽名及付費

Migration - 遷移

遷移甚麼?前面有說「合約會指向一個程式碼項目」,遷移就是改變合約會指向哪一個程式碼項目,要遷移必須在實例化時指定管理用地址(可以是錢包或合約,合約可以傳訊息給其他合約的),管理用地址可以傳遷移訊息給合約令其進行遷移,要是遷移需要改變資料(例如儲存的方式、每個套餐加隻雞腿之類)那新的程式碼項目須自行定義怎麼搞(我想加20隻雞腿)


Access Control - 存取控制

這裡是指讀取控制,例如各種幣的餘額、私人行動紀錄等不該公開的資訊,是Secret Network的特色之一,否則現在大多數區塊鏈都是預設公開,有地址就全部資料看光光

想讀原文去docs.scrt.network/se...

Viewing Keys - 查看鑰匙

較舊的認證方式,現在已不推薦使用,作為用家我使用過但真的不好用,寫合約我沒用上故不詳談

Permits - 許可證

較新及被推薦使用的認證方式,大概原理是先定義許可證內容,然後用錢包替該內容簽名,把明文內容及簽名輸出內容一起扔給合約,合約便可驗證查詢者是該錢包擁有者(而非第三者)並進行各種權限檢查及返回私人資料,當然合約要自行定義這行為

另外許可證可被儲存(在瀏覽器中)重覆使用(只要內容不改)

代碼例子看docs.scrt.network/se...


個人練習用合約例子(附網站)

這是從教學用的專案發展出來,核心就只是裝著一個數字讓人增加(如12)(沒寫減少因為寫了也沒甚麼學),我加了數字改變歷史

自動連結已連結錢包、偵測錢包改變、使用許可證查看個人數字改變歷史、簡單資料遷移系統(這個是寫在合約內網站看不到的)等都做完了
如何刪除資料還保持順序這點我還沒問到答案暫時不搞(資料不是用SQL存取的)

CC BY-NC-ND 4.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

PikachuEXEPikachu x RockmanEXE
  • 选集
  • 来自作者
  • 相关推荐