上手比原鏈開發DAPP,初步體會比原特性和融合PPk開放協議的經驗分享
近期我們PPk技術社群嘗試實現了一個融合比原鏈和PPk開放協議的小應用DEMO——“我畫你猜”比原區塊鏈版。
可以通過下面兩種方式訪問:
1. 傳統的網址: http://btmdemo.ppkpub.org/joy/
2. 基於區塊鏈的PPk ODIN標識網址: ppk:JOY/
類似DAT、IPFS等正在發展中的WEB3.0開放協議,目前大眾使用的電腦和手機瀏覽器還不能原生支援訪問。要訪問“ppk:joy/”這樣的ODIN標識網址,現在可以執行我們PPk開發的JAVA開源工具的代理服務,就能使用現有瀏覽器來訪問PPK網路資源了,比如 http://btmdemo.ppkpub.org:8088/ 或 http://45.32.19.146:8088/ 就是我們執行的示例服務,在瀏覽器裡開啟該代理服務網址然後輸入要訪問的 PPk ODIN標識網址就可以看到了,如下圖所示:
這個遊戲示例本身很簡單,用到比原智慧合約的猜謎模板實現“裝賞金進紅包”和“猜謎解鎖得紅包”,採用比原的retired交易型別將對應謎面定義資料包括圖片、猜謎合約ID等作為交易的附加資訊一起儲存到區塊鏈上,通過呼叫比原節點API就能被查詢和顯示出來。
同時在遊戲裡內建了一個免費領取比原testnet測試幣的水龍頭,配合比原官方錢包可以深入體驗比原鏈的功能特性。
通過實踐收穫,和在一些技術細節上得到了比原技術支援團隊的詳細支援,能體會理解到比原的資產定義UTXO模型是很輕量級的原生實現,相比以太坊通過賬戶和合約模型來定義資產,在執行效率和安全性上比原是有天然優勢的。比原智慧合約的定位是在比特幣指令碼語言和以太坊solidity中間,比Bitcoin指令碼語言更為靈活,但相比以太坊solidity語言又面向資產場景做了特定的編碼約束,在安全和開放靈活性上取了個折衷平衡,這個特性可以被有意在比原鏈上開發應用的朋友深入把握下,用到合適的業務場景會有事半功倍的效果。
我們PPk技術社群成員一起探討後,認為比原的優勢特性不是用於開發像以太坊那種偏較複雜業務邏輯的重量級應用,而是適合將比原作為一個封裝好最核心的數字資產發行和交易邏輯的可信、高效的區塊鏈平臺,將具體的業務處理邏輯放在區塊鏈外部來實現,只是將資產狀態通過比原平臺進行可信處理和儲存,而不是都託管到區塊鏈上來執行。就像我們這次做的這個猜謎應用的實現架構,將關鍵的遊戲資料包括謎面定義、猜謎獎勵的資產狀態等都託管在比原區塊鏈上,而遊戲展現和互動UI還是傳統的PHP+JS可以很方便快速實現的WEB網站,並通過PPk ODIN標識和PTTP協議將兩部分有機地銜接在一起,支援隨著技術發展來靈活演進,不影響業務對外介面的持續和穩定性。比如在後續比原的側鏈方案發展完善後,上述依靠傳統WEB平臺的業務邏輯主體就可以切換到比原側鏈來實現,而這個升級改變通過PPk開放協議的適配,對於外部使用者是透明不受影響的,就像現在的某個網站服務從一個小機房轉移到另一個大機房,網站後端也從PHP改成了JAVA,但對於訪問者來說仍然是同一個域名不受影響。
這裡探討下結合區塊鏈的DAPP應用和遊戲相比傳統的APP應用和遊戲有什麼本質的改變?
對此業界有很多觀點,我們PPk社群認為至少有一點是很明顯的,即相比傳統APP和遊戲的“資料黑盒”,DAPP應用和遊戲改變成完全開放的“資料白盒”,而且依託區塊鏈技術還是“對等、可信”的。這樣同一份遊戲記錄資料,開放、可信、持續地託管到區塊鏈上,可以被其它遊戲應用所自主、可信、穩定地呼叫和整合,所謂“1+1>2”,自組織成更有生命力的應用生態。
以我們這次做的“我畫你猜”小遊戲DMEO來說,每一條謎面記錄都開放、可信地存放在比原鏈上,擁有能保證跨鏈唯一性的ODIN標識,例如下圖:
這是遊戲介面中看到的一條猜謎記錄的詳細資訊,上面的猜謎合約地址是比原鏈上得到的output_id用於通過比原錢包解鎖,下面就是對應這條猜謎記錄JSON源資料的ODIN標識( ppk:JOY/guessgame/bytom/ce7315bf71dd88305df8507fd6eb5ceeb1a7149681c2dbcc732ea319f5539320# ),可以被跨鏈跨平臺應用所自主可信地採用,通過支援ODIN標識和PTTP協議的工具比如PPk瀏覽器就能獲取到該ODIN標識對應謎面記錄的JSON資料,如下圖所示:
同時獲取者能自主判斷所拿到的源資料是否是可信的,這裡面就用到了區塊鏈技術,其實機制也很簡單,就是把公鑰可信地儲存在區塊鏈上,通過ODIN標識來獲得驗證資料塊簽名即可,具體實現方案可以訪問 http://ppkpub.org/#odinproject 深入瞭解。
這裡重點留意上圖中的紅色方塊標註的文字內容,實際在這個遊戲示例中,我們並不是簡單地直接存猜謎合約的ID, 而是用到同樣用ODIN標識定義的一個URI 即“ppk:BTM/contract/0e42b3e32591c28ef1575b62f1c50c3790b62569ac091cddcb1dee070101a46b” 。
這樣我們猜謎應用的主體程式執行在比原鏈上,不僅可以使用比原鏈的猜謎合約和token,同時後續還可以進一步擴充套件,靈活支援跨連結入其他區塊鏈如ETH,EOS等猜謎合約的ODIN標識地址和資產。將ETH,EOS等其它鏈上的合約也ODIN標識定義出相應的URI地址,然後在建立謎面時輸入使用就可以了,就是將上述示例紅框裡的”ppk:BTM/contract/…”這樣的地址換成”ppk:ETH/contract/…”等, 遊戲應用相應呼叫PPk開放協議的SDK,統一按照PPk ODIN標識規範識別,並通過PTTP協議與ETH、EOS等區塊鏈服務節點進行資訊互動就可以了,類似現在採用HTTP協議就可以很方便、靈活訪問不同的網站和內容服務。
在上述這個簡單示例基礎上,我們PPk技術社群正在比原鏈和更多區塊鏈平臺的各自特性,進一步構思和實現更多應用示例,體現PPk開放協議在WEB3.0生態中的獨特“銜接”作用,歡迎繼續關注。
作者:PPk興趣組
版權宣告: ofollow,noindex">
作者保留權利。文章為作者獨立觀點,不代表巴位元立場。