比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > 幣贏 > Info

CON:如何快速構建區塊鏈應用?這款腳手架支持一鍵生成

Author:

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

在數字化、信息化的今天,區塊鏈技術已經逐步走入各行各業。為了滿足普適性的要求,區塊鏈的應用開發理應更加簡單順手。但是我們發現目前區塊鏈應用開發仍然存在著一定門檻,社區中不斷涌現的疑問便是體現之一。

如何配置私鑰和證書?

怎么訪問區塊鏈節點?

SDK的接口怎么用?

如何構建一筆交易?

怎么解析交易回執?

……

來自開發者的疑問各式各樣,但如果開發者一直在處理這些問題,則會帶來大量的時間開銷,影響業務開發的進展。一門成熟的技術,應不斷將重復的細節封裝起來,讓開發人員更加聚焦業務,提升業務快速上線、快速試錯和快速迭代的效率。

微眾銀行自2015年深耕區塊鏈,在技術攻關和應用開發上積攢了豐富的經驗。為了讓開發者能夠在自己的業務中輕松引入區塊鏈技術,微眾銀行區塊鏈開發了區塊鏈應用開發組件WeBankBlockchain-SmartDev。其所包含的子組件——區塊鏈應用開發腳手架WebankBlockchain-SmartDev-Scaffold,更是通過一鍵生成應用項目,幫助開發者敏捷、高效地開發區塊鏈應用。

??應用開發腳手架簡介

一個典型的區塊鏈應用項目后端,可以分為三塊。業務邏輯部分由用戶自行定義;代碼部分包含了智能合約訪問的功能,例如函數入參的封裝、交易的構造和推送、鏈的訪問等;資源部分則包含了合約、ABI、BIN。如下圖所示:

Sweat授權社區決定如何處理自年初以來積累的1億枚SWEAT代幣:4月18日消息,Move-to-Earn 項目 Sweat 授權社區決定如何處理自今年年初以來積累的 1 億枚 SWEAT 代幣,投票選項包括 0% 分發和 100% 銷毀,25% 分發和 75% 銷毀,50% 分發和 50% 銷毀,75% 分發和 25% 銷毀,100% 分發和 0% 銷毀。[2023/4/18 14:11:30]

應用開發腳手架組件允許用戶在寫好智能合約的基礎上,將智能合約轉換為一個SpringBoot項目,這個項目已經涵蓋了上圖中藍色和綠色的部分,用戶只需要補充自己的業務邏輯即可,不必再去關心區塊鏈訪問的細節,大大縮短了開發時間。

??關鍵特性一覽

一鍵生成

用戶在開發完智能合約后,可以將智能合約直接拖入腳手架,只要輕量配置,就可以生成相關項目。并且,生成的項目已經包含了智能合約訪問的必要邏輯。此外,該項目是SpringBoot項目,相關的配置、服務均已納入到spring容器當中。

高度封裝

腳手架在生成項目時,會對合約調用邏輯做高度的封裝,用戶可以像使用ORM框架操作數據庫一樣地操作智能合約。

在生成的項目中,每個合約都被單獨封裝到一個類中,每個函數對應合約的一個函數。其輸入是java類型的輸入,輸出也是已解析的輸出。此外,對于函數的輸入參數,我們也已生成了相關的模型類,方便用戶使用。

輕量配置

Life預言機協議:正在探索如何把真實數據存儲在Filecoin網絡:北京時間2021年5月18日15時,Life預言機協議官方發布博客表示正在探索如何把真實數據存儲在Filecoin網絡。Life去中心化數據預言機協議啟動于2017年,旨在實現區塊鏈與現實世界的數據可信交互。Life是一個集成了智能合約、加密算法、通證經濟以及各種API的綜合性去中心化預言機網絡。生態參與者可依靠智能硬件采集設備進行海量數據收集,后端接入Life完成數據的加密存儲、確權和自由流轉。目前Life與可信硬件廠商的合作開發已經進展到了最后的階段,相關可信硬件(數據采集設備)已經研發完成,不久將會上市。Life技術團隊目前正基于Filecoin網絡完善相關的API,以實現可信硬件采集的數據可直接上傳至Filecoin網絡。[2021/5/19 22:20:00]

用戶在將智能合約拖入腳手架后,只需做少量的涉及項目名稱、組名、合約選擇器等內容的配置即可。而且這些配置依據“契約優于配置”的原則設置了默認值,用戶可根據自己的實際需要進行調整。

合約可選

在開發具有一定復雜度的智能合約時,出于易升級、松耦合的目的,開發者通常會采用一定的手段將合約功能解耦,拆散到不同的合約中去。所以,在一組智能合約中,真正供外部訪問的合約只占少數,多數合約都僅作為功能性合約來支撐整體業務。

而且,在后續應用開發時,真正需要開發的服務類也占少數。為了讓項目聚焦在所需要的合約上,開發者可配置合約選擇器,即指定所需要處理的合約,繼而腳手架只會為這些合約生成相應的代碼,避免了冗余代碼。

掌柜調查署 | 當前環境下交易所如何“轉正”?:4月15日16:00,金色財經「掌柜調查署」邀請到ChainUP大客戶項目負責人針對交易所如何擁抱合規的問題進行解答,帶領大家全面了解當前環境下,交易所如何“轉正”!更多內容點擊原文鏈接查看。[2020/4/15]

??如何使用

下面給一個簡單的例子,以說明腳手架的使用方法。

獲取腳手架

從gihtub或gitee獲取腳手架,以github為例:

git?clone?https://github.com/WeBankBlockchain/SmartDev-Scaffold.gitcd?tools

進入tools目錄后,可以看到它的結構:

|--tools?|??|--contracts?|??|--|HelloWorld.sol?|??|--config.ini|??|--run.sh

其中:

contracts目錄用于存放solidity合約文件,腳手架后續會讀取該目錄下的合約,以生成相對應的業務工程。可刪除該目錄下的默認合約,并將自己的業務合約拷貝到該目錄下。

config.ini是啟動相關配置。

run.sh是啟動腳本。

配置腳手架

合約配置

本示例中,使用默認的HelloWorld合約。實際使用過程中,可刪除contracts目錄下的默認合約,并將自己的業務合約拷貝到該目錄下。

動態 | 芬蘭海關對如何處理繳獲的比特幣感到困惑:金色財經報道,芬蘭財政部下屬的海關一直在考慮如何處理幾年前從販手中繳獲的1666枚比特幣。據悉,芬蘭海關不想拍賣沒收的比特幣,因為可能會將其返還給犯罪分子。這些比特幣在沒收的時候價值不到70萬歐元(約合76萬美元)。根據Coin360的數據,截至目前,這1666枚比特幣的價值接近1500萬歐元(超過1550萬美元)。據報道,該機構最初計劃在2018年拍賣這些資金,但最終以“反洗錢”為由凍結了這些比特幣。報告指出,除了持有超過1500萬美元的比特幣外,芬蘭海關還持有一些價值數百萬歐元的山寨幣。[2020/2/26]

項目配置

可以在config.ini中做項目配置,如下:

###?項目名稱artifact=demo###?組名稱group=org.example###?所支持的合約列表,通常為空即可selector=

運行腳手架

直接啟動腳本:

chmod?x?run.sh?bash?run.sh

運行成功后,會在tools目錄下得到一個基于SpringBoot的項目工程,本示例是demo:

|--tools?|??|--demo?##?這是新生成的工程|??|--contracts

.├──?build.gradle├──?gradle│???└──?wrapper│???????├──?gradle-wrapper.jar│???????└──?gradle-wrapper.properties├──?settings.gradle└──?src????├──?main????│???├──?contracts????│???│???└──?HelloWorld.sol????│???├──?java????│???│???└──?org????│???│???????└──?example????│???│???????????└──?demo????│???│???????????????├──?Application.java????│???│???????????????├──?config????│???│???????????????│???├──?ContractConfig.java????│???│???????????????│???├──?SdkBeanConfig.java????│???│???????????????│???└──?SystemConfig.java????│???│???????????????├──?model????│???│???????????????│???├──?CommonResponse.java????│???│???????????????│???└──?bo????│???│???????????????│???????└──?HelloWorldSetInputBO.java????│???│???????????????├──?service????│???│???????????????│???└──?HelloWorldService.java????│???│???????????????└──?utils????│???│???????????????????└──?IOUtil.java????│???└──?resources????│???????├──?abi????│???????│???└──?HelloWorld.abi????│???????├──?application.properties????│???????├──?bin????│???????│???├──?ecc????│???????│???│???└──?HelloWorld.bin????│???????│???└──?sm????│???????│???????└──?HelloWorld.bin????│???????└──?conf????└──?test????????└──?java????????????├──?org????????????│???└──?example????????????│???????└──?demo????????????│???????????└──?DemoPkey.java????????????└──?org.example.demo

動態 | 烏克蘭國會收到一項關于應如何對與加密有關的收入征稅的草案:據Coindesk消息,一項草案規定了烏克蘭應如何對與加密有關的收入征稅,該草案已提交給該國議會Verkhovna Rada。該法案是由烏克蘭數字轉型部、區塊鏈4ukraine派系議會協會和更好的監管交付辦公室(BRDO)組織起草的。這份由13名議會成員撰寫的文件旨在修訂烏克蘭的稅法,并引入與加密資產相關的主要概念。該法案將此類資產定義為“一種特殊類型的有價值財產,以數字形式創建、記賬并通過電子方式處理”,比如加密貨幣、代幣以及草案中未指定的其他類型。總部位于烏克蘭的加密貨幣交易所Kuna的創始人,烏克蘭區塊鏈協會主席Michael Chobanian表示,他相信這項法律將奏效,但該行業還面臨其他障礙,需要解決。[2019/11/20]

其中:

config目錄包含了Bean配置類。

service目錄中包含了智能合約訪問類,一個類對應一個合約。

bo目錄包含了合約函數輸入參數的封裝POJO類。

src/main/resource/conf目錄用于存放證書信息。

應用開發

生成項目工程后,可以進行DAPP開發。下面以前文所提及的demo項目工程為例進行說明。

部署合約

使用控制臺等方式部署HelloWorld合約,可得到它的地址。

證書拷貝

將配置文件拷貝到生成工程的conf目錄或src/main/resources/conf目錄下。該業務工程會自動在這些路徑下搜索證書。

配置連接節點

修改application.properties時,填寫如下信息:

system.peers=127.0.0.1:20200system.groupId=1system.certPath=src/main/resources/conf###?前述合約部署地址system.contract.helloWorldAddress=###?私鑰明文,如為空,會自動生成一個system.hexPrivateKey=server.port=8080

補全業務處理邏輯

一個完整的DAPP應包含至少三層架構。本示例補全一個Controller。但需說明的是,它僅僅是展示交易的結果。示例如下:

@("hello")public?class?HelloController?{????????}

編譯工程

進入目錄后,執行編譯:

cd?demogradle?build?-x?test

運行jar包

啟動項目后,可在瀏覽器內輸入:

http://127.0.0.1:8080/hello/set?n=hello

返回示例:

0x1c8b283daef12b38632e8a6b8fe4d798e053feb5128d9eaf2be77c324645763b

??即刻使用

上述相關代碼和技術文檔已更新,歡迎體驗和star支持。如需咨詢技術問題,歡迎關注本公眾號,對話框回復進技術交流群。

文檔地址:

https://smartdev-doc.readthedocs.io/zh_CN/latest/docs/WeBankBlockchain-SmartDev-Scaffold/index.html

github代碼庫地址:

https://github.com/WeBankBlockchain/SmartDev-Scaffold?

gitee代碼庫地址:

https://gitee.com/WeBankBlockchain/SmartDev-Scaffold

歡迎參與WeBankBlockchain的社區建設:

如項目對您有幫助,歡迎點亮我們的小星星(點擊項目左上方Star按鈕)。

歡迎提交代碼(Pullrequests)。

提問和提交BUG。

如果發現代碼存在安全漏洞,可通過以下地址

https://security.webank.com/上報。

Tags:CON區塊鏈ELLOHELConvex Finance區塊鏈專業學什么Hello Art TokenHELIOS價格

幣贏
DigiFinex:關于合約經紀人高頻刷單違規交易的處理公告

尊敬的用戶: 為了更好的推進DigiFinex合約業務,平臺一直面向全網招募合約經紀人。但部分合約經紀人的交易方式為高頻刷單,造成撮合引擎負載太重,并影響到其它用戶的正常交易,也影響到其它正常經.

1900/1/1 0:00:00
HTT:XT 關于恢復 XLM 提幣的公告(2021/4/22)

尊敬的XT用戶: XLM錢包升級已完成,XT現已恢復XLM提幣業務,暫停期間給您帶來的不便,敬請諒解.

1900/1/1 0:00:00
區塊鏈:區塊鏈領域大部分商業模式會死得很慘

關于思考商業模式的問題,對投資是有很大幫助的,一個不愿意去思考商業模式的投資者,實際上可能連合格都算不上,更不要說去賺超額利潤。因此,商業模式問題,不僅僅是創業者的問題,還是投資者的問題.

1900/1/1 0:00:00
GAT:Gate.io 將上線 Wrapped Bitcoin(WBTC) 交易的公告

Gate.io將于2021年4月23日17:00上線WrappedBitcoin(WBTC)交易。WrappedBitcoin是一個以比特幣1:1支持的ERC20令牌.

1900/1/1 0:00:00
比特幣:真正的頭號玩家進場,區塊鏈行業要翻天覆地了

今天要講的故事,絕對精彩。4月16日,美國商務部網站公告,7年內禁止美國企業向中興通訊出口任何技術、產品。這個禁令到底有多嚴重呢?隨后中興通訊董事長殷一民說,禁令制裁使公司立即進入休克狀態.

1900/1/1 0:00:00
GATE:Gate.io 將上線 KickPad(KPAD)交易的公告

Gate.io將于2021年4月22日11:00上線KickPad交易。KickPAD是基于Binance智能鏈的去中心化預售和IDO平臺.

1900/1/1 0:00:00
ads