<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          開源進(jìn)展 | WeBASE lab-rc2 發(fā)布,支持Liquid合約與權(quán)限管理

          共 5353字,需瀏覽 11分鐘

           ·

          2022-05-24 23:04

          WeBASE (WeBank Blockchain Application Software Extension)是在區(qū)塊鏈應(yīng)用和FISCO BCOS底層之間搭建的一套通用組件,圍繞交易、合約、密鑰管理、數(shù)據(jù)、可視化管理來(lái)設(shè)計(jì)各個(gè)模塊,屏蔽了區(qū)塊鏈底層的復(fù)雜度,從而極大降低研發(fā)門檻,提速區(qū)塊鏈應(yīng)用開發(fā)效率。

          自FISCO BCOS v3.0發(fā)布以來(lái),WeBASE團(tuán)隊(duì)協(xié)同F(xiàn)ISCO BCOS開源社區(qū),緊鑼密鼓開展適配工作,于今年2月底推出WeBASE lab版(點(diǎn)擊了解詳情),以便開發(fā)者高效部署和管理FISCO BCOS v3.0。WeBASE lab版提供了與FISCO BCOS v3.0相匹配的鏈上數(shù)據(jù)概覽、合約IDE、交易管理、私鑰管理等運(yùn)維管理功能,并提供快速部署工具,用戶可以一鍵部署FISCO BCOS v3.0,在可視化的Web管理臺(tái)中管理智能合約,發(fā)起交易與鏈交互。

          目前,在社區(qū)開發(fā)者的通力協(xié)作下,WeBASE lab-rc2版本正式發(fā)布,新增Liquid合約支持、權(quán)限管理等功能,適配FISCO BCOS v3.0 rc2版本,歡迎大家star并積極體驗(yàn)。

          一起來(lái)看看WeBASE lab-rc2的功能介紹吧!

            支持Liquid合約

          本次更新中,WeBASE新增了對(duì)Liquid合約的編譯、部署、調(diào)用等功能。

          Liquid 是微眾區(qū)塊鏈推出的全新一代智能合約編程語(yǔ)言(點(diǎn)擊了解詳情)。它以 Rust 語(yǔ)言為載體,以涵蓋安全(Security)、性能(Performance)、體驗(yàn)(Experience)及定制能力(Customization)四個(gè)方面的“SPEC”智能合約編程語(yǔ)言設(shè)計(jì)規(guī)范為基礎(chǔ),通過(guò)貼合區(qū)塊鏈應(yīng)用特色的創(chuàng)新語(yǔ)言設(shè)計(jì),助力實(shí)現(xiàn)智能合約開發(fā)過(guò)程更友好,運(yùn)行更高效,功能更強(qiáng)大,降低開發(fā)者接入?yún)^(qū)塊鏈應(yīng)用的門檻。

          Liquid技術(shù)文檔地址

          https://liquid-doc.readthedocs.io/zh_CN/latest/

          按以下步驟,即可在WeBASE中實(shí)現(xiàn)對(duì)Liquid合約的編譯、部署、調(diào)用。

          配置編譯環(huán)境

          編譯合約前,需要先在WeBASE-Front所在主機(jī)中配置Liquid的編譯環(huán)境。按照Liquid配置文檔完成編譯環(huán)境配置后,進(jìn)入WeBASE合約IDE即可開始體驗(yàn)Liquid合約。

          Liquid配置文檔地址:

          https://webasedoc.readthedocs.io/zh_CN/lab/docs/WeBASE-Front/liquid.html

          圖1:WeBASE合約IDE

          進(jìn)行編譯前,合約IDE會(huì)自動(dòng)選中一個(gè)節(jié)點(diǎn)前置用于編譯Liquid合約,如上圖1的右上角所示。如果選中的節(jié)點(diǎn)前置未配置Liquid環(huán)境,將無(wú)法編譯,此時(shí)需要切換一個(gè)擁有Liquid環(huán)境的節(jié)點(diǎn)前置即可。

          合約編譯

          WeBASE對(duì)Liquid合約采用異步編譯的方式。點(diǎn)擊編譯合約后,WeBASE后臺(tái)開始異步編譯合約,并輪詢后臺(tái)合約是否編譯完成;編譯完成后,WeBASE合約IDE下方將出現(xiàn)合約ABI和合約BIN值,可以進(jìn)行合約部署了。

          合約部署、調(diào)用

          WeBASE合約倉(cāng)庫(kù)的工具箱合約中新增了 “LiquidHelloWorld”合約模板,我們可以直接將該合約導(dǎo)入到WeBASE合約IDE中,進(jìn)行編譯部署,操作可參考圖2、圖3。 

          圖2:合約倉(cāng)庫(kù)導(dǎo)入“LiquidHelloWorld”合約模板

          圖3:合約部署

          Liquid合約的使用方法和Solidity大致相同,合約編譯完成后都將獲得合約的ABI和BIN值,可用于部署和調(diào)用操作。

          與Solidity合約部署不同的是,Liquid合約部署時(shí)需要手動(dòng)指定合約地址,且合約地址是以“/”斜杠開頭且必須唯一,如上圖3所示。例如,我們將部署地址設(shè)置為“/test1”進(jìn)行部署,如果當(dāng)前群組已經(jīng)部署過(guò)地址為“/test1”的合約,那么部署將因地址沖突而失敗。

          Liquid提供了常用的Liquid合約案例,包含了HelloWorld合約,積分合約等案例,我們可以通過(guò)這些用例快速熟悉、掌握使用Liquid開發(fā)區(qū)塊鏈應(yīng)用的方法,合約案例可通過(guò)以下地址獲取:

          Liquid合約集gitee地址:

          https://gitee.com/WeBankBlockchain/liquid/tree/main/examples/contract

          Liquid合約集github地址:

          https://github.com/WeBankBlockchain/liquid/tree/main/examples/contract

            更強(qiáng)大的權(quán)限治理功能

          FISCO BCOS v3.0在原有的“鏈治理委員會(huì)”和“合約管理員”的權(quán)限治理體系中,引入了“合約粒度”的權(quán)限治理。在最新的權(quán)限治理中,用戶不僅可以管理“鏈”和“合約”維度的權(quán)限,還可以通過(guò)設(shè)置“白名單”和“黑名單”策略來(lái)管理具體合約中某個(gè)函數(shù)方法的調(diào)用權(quán)限。

          圖4:FISCO BCOS v3.0權(quán)限治理設(shè)計(jì)

          如上圖4所示,F(xiàn)ISCO BCOS v3.0的權(quán)限治理是基于角色的權(quán)限治理,包括了“治理委員”、“合約管理員”和“普通用戶”三種角色:
          • 治理委員:對(duì)鏈級(jí)別進(jìn)行治理、屬于鏈的頂層管理者。權(quán)限包括:治理委員選舉、凍結(jié)、解凍等;對(duì)合約管理員進(jìn)行管理等。

          • 合約管理員:對(duì)合約方法訪問(wèn)權(quán)限進(jìn)行分配管理。部署合約的用戶默認(rèn)為合約管理員。
          • 普通用戶:如果合約管理員未對(duì)合約設(shè)置權(quán)限類型,則默認(rèn)所有用戶都可調(diào)用合約接口;如果設(shè)為白名單,則用戶在白名單當(dāng)中才能訪問(wèn);如果設(shè)為黑名單,則用戶黑名單中就無(wú)法訪問(wèn)對(duì)應(yīng)接口。

          FISCO BCOS v3.0通過(guò)更細(xì)粒度的權(quán)限治理設(shè)計(jì),讓用戶在區(qū)塊鏈上更高效地完成更精準(zhǔn)范圍的權(quán)限控制,提高了聯(lián)盟鏈中各機(jī)構(gòu)的權(quán)限治理效率,降低協(xié)商成本。此次更新的WeBASE lab-rc2版本,實(shí)現(xiàn)了對(duì)FISCO BCOS v3.0權(quán)限治理功能更全面地支持。

          啟用并初始化權(quán)限治理功能

          使用FISCO BCOS v3.0的權(quán)限治理功能,需要在搭建區(qū)塊鏈節(jié)點(diǎn)時(shí)"開啟權(quán)限管理",相應(yīng)地,通過(guò)WeBASE進(jìn)行一鍵部署搭鏈操作時(shí),需要在配置文件中啟用權(quán)限治理功能(fisco.auth=1)。

          以WeBASE一鍵部署為例,我們啟用權(quán)限治理并完成搭建后,在鏈的 nodes/ca/account 目錄下將出現(xiàn)隨機(jī)生成的鏈管理員.pem私鑰文件。保存該私鑰文件,通過(guò)如下圖5所示的“導(dǎo)入管理員私鑰”功能,將鏈的管理員私鑰導(dǎo)入WeBASE中進(jìn)行管理。完成初始委員私鑰導(dǎo)入后,我們可以通過(guò)該私鑰進(jìn)行新增其他治理委員的操作。

          圖5:導(dǎo)入初始委員私鑰

          權(quán)限治理的提案與投票

          在進(jìn)行權(quán)限治理時(shí),用戶每發(fā)起一次權(quán)限修改的操作,該操作被視為一次投票,相同權(quán)限修改操作中的第一次投票會(huì)自動(dòng)產(chǎn)生一個(gè)提案。如,鏈治理委員Alice將新用戶Caron設(shè)置為新的鏈委員,則該操作會(huì)自動(dòng)生成一個(gè)“提案”,此時(shí)另一個(gè)鏈治理委員Bob也設(shè)置Caron為新的鏈委員,則此時(shí)不會(huì)產(chǎn)生重復(fù)的提案,而是變成Bob對(duì)該提案投出了“同意”票。每個(gè)委員都可以發(fā)起提案或者對(duì)提案投“同意”或“反對(duì)”票。

          提案是否能通過(guò)取決于委員“投票參與率”和“投票加權(quán)同意率”是否滿足閾值進(jìn)行判定,可以通過(guò)以下兩個(gè)公式進(jìn)行計(jì)算判斷:
          • 總投票權(quán)重 / 總權(quán)重 >= 投票參與率 
          • 同意權(quán)重票 / 總投票權(quán)重 >= 投票加權(quán)同意率

          在WeBASE中進(jìn)行權(quán)限治理

          設(shè)置鏈上權(quán)限:WeBASE “系統(tǒng)管理-權(quán)限管理”頁(yè)面中,用戶可以通過(guò)可視化頁(yè)面對(duì)鏈上的權(quán)限進(jìn)行快速設(shè)置,目前包含新增/撤銷委員投票(setWeight)、設(shè)置委員投票權(quán)重(setWeight)、設(shè)置閾值(setRate)三種操作,其中新增委員、撤銷委員和修改委員投票權(quán)重都是屬于setWeight設(shè)置權(quán)重類型的投票。

          比如,我們?cè)O(shè)置閾值(投票加權(quán)通過(guò)率)和投票參與率都設(shè)為55,意味著參與投票的委員數(shù)要大于55%,且委員投票后的加權(quán)同意率大于55%,具體如下圖6所示:

          圖6:WeBASE權(quán)限管理頁(yè)面

          修改鏈上權(quán)限:用戶對(duì)權(quán)限的任意修改都會(huì)自動(dòng)產(chǎn)生一個(gè)提案,該提案會(huì)在頁(yè)面下方的提案列表中出現(xiàn),我們可以在列表中查看提案的類型、通過(guò)狀態(tài)、提案編號(hào)、提案發(fā)起者等信息,如圖7所示。用戶也可以進(jìn)行“委員投票”,對(duì)提案進(jìn)行同意或否定的投票操作,這里注意,“撤銷提案”功能需要第一個(gè)發(fā)起投票的鏈委員才能撤銷。

          圖7:WeBASE提案列表

          更多關(guān)于權(quán)限治理的設(shè)計(jì)與使用方法參考以下文檔:

          FISCO BCOS v3.0權(quán)限治理使用指南:

          https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/develop/committee_usage.html

          FISCO BCOS v3.0權(quán)限治理體系設(shè)計(jì):

          https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/design/committee_design.html 

            全新的BFS功能

          FISCO BCOS v3.0引入了全新的區(qū)塊鏈合約文件系統(tǒng) BFS(Blockchain File System)功能,將區(qū)塊鏈中的合約資源使用樹形文件目錄形式進(jìn)行組織劃分管理,BFS旨在方便用戶進(jìn)行合約資源的管理,實(shí)現(xiàn)資源路徑分區(qū)管理,不同分區(qū)不同職責(zé)的效果。如圖8所示,BFS是一個(gè)邏輯結(jié)構(gòu),表現(xiàn)為多級(jí)的目錄層。

          圖8:BFS設(shè)計(jì)

          BFS中文件類型包含了 directory 目錄類型和 contract 合約文件類型。

          WeBASE中的BFS功能

          在WeBASE的BFS操作頁(yè)面中,默認(rèn)的目錄為“/”根目錄,從下圖9在WeBASE中的文件列表我們可以看到,根目錄下包含了"sys", "apps", "tables", "usr" 四個(gè)目錄文件,四個(gè)目錄的功能如下表1所示:

          表1:BFS根目錄

          以"apps"目錄為例,所有用戶部署的合約默認(rèn)存儲(chǔ)在apps目錄下。例如,我們部署了一個(gè)Liquid合約,其合約地址在部署時(shí)指定為"test1",那么在”apps"目錄下將創(chuàng)建一個(gè)type為directory的"test1"目錄文件,里面包含了一個(gè)type為contract的"test1"的合約文件。

          圖9:WeBASE BFS頁(yè)面

          在BFS中可以使用ls/cd/mkdir三種命令,其中l(wèi)s和cd命令屬于查詢命令,mkdir屬于執(zhí)行命令,這三種指令的使用習(xí)慣與Linux的文件系統(tǒng)操作類似。
          • ls:獲取指定目錄的文件列表,包括目錄與文件
          • cd:切換當(dāng)前目錄為指定目錄
          • mkdir:在當(dāng)前目錄下創(chuàng)建目錄,僅限于"apps"和”tables"目錄下創(chuàng)建

          BFS詳細(xì)介紹可參考FISCO BCOS v3.0技術(shù)文檔《 區(qū)塊鏈合約文件系統(tǒng)》章節(jié):

          https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/design/contract_directory.html#

            優(yōu)化和修復(fù)

          • 優(yōu)化:支持CNS功能、Event查看功能

          • 優(yōu)化:支持?jǐn)?shù)據(jù)大屏與移動(dòng)端展示功能

          • 優(yōu)化:增加交易回執(zhí)中status狀態(tài)碼的中英文提示

          • 修復(fù):升級(jí)依賴包中springboot 1.x到2.x
            即刻使用

          上述優(yōu)化及功能所涉及的最新代碼和技術(shù)文檔已同步更新至WeBASE代碼倉(cāng)庫(kù)【lab】分支。

          需要提請(qǐng)大家注意的是,WeBASE既有的1.x版本(適用FISCO BCOS 2.x版本)也會(huì)持續(xù)更新迭代,永久維護(hù)。使用WeBASE時(shí),大家可以通過(guò)以下任一方式查看當(dāng)前使用的版本信息,以更好地完成部署工作:
          • 查看WeBASE頁(yè)面中的版本信息
          • 查看部署WeBASE時(shí)輸出的版本信息
          • 查看WeBASE源碼或安裝包中的release_note.txt

          如需咨詢技術(shù)問(wèn)題,歡迎本公眾號(hào)對(duì)話框回復(fù)【小助手】進(jìn)技術(shù)交流群。

          WeBASE 代碼倉(cāng)庫(kù):
          https://github.com/WeBankBlockchain/WeBASE/tree/lab
          WeBASE 代碼倉(cāng)庫(kù)國(guó)內(nèi)鏡像:
          https://gitee.com/WeBank/WeBASE/tree/lab
          WeBASE 技術(shù)文檔:
          https://webasedoc.readthedocs.io/zh_CN/lab
          WeBASE 技術(shù)文檔國(guó)內(nèi)鏡像:

          https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/doc/lab-rc1/index.html

          首次體驗(yàn)WeBASE,可參考一鍵部署文檔:

          https://webasedoc.readthedocs.io/zh_CN/lab/docs/WeBASE/install.html

          向我們報(bào)告問(wèn)題,歡迎提交issue:
          https://github.com/WeBankBlockchain/WeBASE/issues







          瀏覽 82
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天日天天插天天爽 | 日韩v欧美v日本v亚洲v国产v | 午夜一级电影 | 操b在线视频播放 | daxiangjiaojiujiu |