買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > 瑞波幣 > Info

CON:Conflux開發教程:使用IDE開發DApp的實戰操作指南-ODAILY_influencechain

Author:

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

一、簡介

ConfluxStudio是一個幫助開發者快速開發Conflux智能合約的集成化開發環境。ConfluxDApp開發教程將使用ConfluxStudio在Oceanus網絡下開發一個簡單的代幣應用Coin。

通過這個開發教程,你將會學習到如何進行Conflux智能合約的編寫、調用,配置智能合約的代付以及如何使用Web前端項目與智能合約進行交互,從而實現一個包含前端和智能合約的完整的DApp。

二、準備工作

2.1安裝IDE

請在GitHub的下載頁面

(github.com/ObsidianLabs/ConfluxStudio/releases)下載ConfluxStudio。目前ConfluxStudio支持macOS和Linux系統,請根據系統下載對應的版本。

正確安裝ConfluxStudio并初次啟動后,ConfluxStudio將顯示歡迎頁面,根據提示完成Docker,ConfluxNode以及ConfluxTruffle的下載、安裝及啟動。

2.2創建錢包

完成所有的安裝步驟后,首先需要創建鑰匙對來完成后續的合約部署以及調用。

在ConfluxStudio的任意界面,點擊應用左下?的鑰匙圖標,打開密鑰管理器。點擊Create按鈕打開新鑰匙對彈窗,輸入鑰匙對的名字并點擊Save按鈕。完成后將在密鑰管理器中看到剛剛生成的鑰匙對的地址。鑰匙對由私鑰和公鑰組成,公鑰在智能合約中也常被稱作地址。

導出私鑰可以通過點擊每個地址后面的眼睛按鈕打開查看私鑰彈窗,彈窗顯示地址以及私鑰。后續教程中會需要通過管理器導出私鑰。

為了順利完成教程,首先需要創建三個鑰匙對:

·minter_key用于Coin合約部署時的簽名,是這個教程中最常使用的鑰匙對

·receiver_key用于Coin合約接收轉賬,將在后文中介紹轉賬時用到

·sponsor_key用于Coin合約代付功能,將在后文中介紹代付功能時用到

2.3連接Conflux網絡

教程將在Oceanus網絡進行合約的部署以及合約的調用。點擊頂部Network標簽的倒三角打開下拉菜單,點擊選擇Oceanus網絡進行切換。

切換完成后,可以在主頁面中看到當前網絡為oceanus。頁面左邊包括了當前網絡的節點URL,ChainID,TPS信息,頁面右邊包含了當前網絡區塊的信息。

2.4申請測試CFX

點擊頂部Explorer標簽打開區塊瀏覽器,并在地址欄粘貼鑰匙對地址,可以在左邊看到當前地址的CFX余額信息。

ConsenSys發布“Diligence Fuzzing”工具來測試智能合約漏洞:金色財經報道,根據8月1日的公告,區塊鏈技術公司ConsenSys公開發布了用于智能合約測試的“Diligence Fuzzing”工具。新工具會生成“隨機且無效的數據點”,以便在合約發布之前發現合約中的漏洞。

該新工具過去以封閉測試版本提供,開發人員需要獲得訪問批準。自8月1日起,不再需要此審批流程。Diligence Fuzzing現在還與智能合約工具包Foundry集成,并為想要在花錢之前進行測試的開發人員提供免費版本。[2023/8/1 16:11:50]

在區塊鏈的世界中,大家通常將申請測試Token的方式稱為faucet,目前在Oceanus網絡下每次faucet申請到的Token為100CFX。

獲取CFX的方式有兩種方式:

·輸入地址后點擊地址欄右邊的水龍頭按鈕,ConfluxStudio將為地址自動申請CFX;

·你也可以直接在瀏覽器中輸入wallet.confluxscan.io/faucet/dev/ask?address={address}來申請CFX;

使用上述方法在ConfluxStudio中為minter_key和sponsor_key申請CFXToken。完成申請后,這兩個賬戶上的余額將會從0CFX更新為100CFX。

目前余額信息為:

·minter_key余額100CFX

·receiver_key余額0CFX

·sponsor_key余額100CFX

三、智能合約創建項目

3.1創建項目

點擊頂部左邊的Project標簽切換至項目列表頁面,點擊頁面中的New按鈕打開項目創建窗口,輸入項目的名稱并選擇coin模版,點擊CreateProject完成項目的創建。

3.2合約代碼

Coin合約是一個簡單的代幣合約,其中:

·通過mint方法可以增發代幣數量

·通過send方法可以將一定數量的代幣轉賬給別的用戶,同時會在事件中記錄下這筆轉賬的信息

·通過balanceOf方法可以查詢到指定賬戶地址的代幣余額

·通過add_privilege方法可以為合約添加代付白名單

·通過remove_privilege方法可以為合約移除代付白名單

Conflux智能合約使用Solidity語言進行開發,打開目錄下的contracts/Coin.sol文件,這個是本項目的核心代碼:

Connext宣布Amarok升級已上線,允許開發者構建跨鏈應用:2月3日消息,跨鏈互操作性協議Connext宣布其Amarok升級已上線,允許開發人員構建跨鏈應用程序,此舉可以改善鏈上用戶體驗。升級還允許去中心化金融交易,例如流動性提供以解決流動性碎片化問題。據悉,此次升級在于改善與去中心化應用程序交互時的用戶體驗。

此前報道,1月31日,跨鏈互操作性協議Connext宣布其Amarok升級已完成主網測試,已在以太坊、Polygon、Arbitrum、Optimism、Gnosis鏈和BNB上軟啟動,為了鼓勵用戶為協議提供更多的流行性,Connext將對接下來三個月內每條鏈上提供流動資金量排名前30%的地址獎勵Galxe NFT。[2023/2/3 11:44:48]

3.3編譯及部署合約點擊工具欄的Build按鈕進行合約的編譯,編譯的結果將會保存在build/Coin.json文件中。

在部署合約前,首先需要確認在Explorer中選擇合約部署所使用的地址,ConfluxStudio會使用這個地址將部署合約這筆交易進行簽名。在合約代碼的constructor中,minter被賦值為msg.sender,這個msg.sender就是Explorer所選擇的地址。

在此我們選擇minter_key作為部署合約的簽名者。

點擊工具欄的部署按鈕進行部署,部署完成后,部署結果會在deploys的JSON文件中,在這個文件中可以在contractCreated中找到當前合約部署的地址,后文中使用contract_addr來代表這個合約地址。

四、調用合約

點擊頂部的Contract標簽切換至合約頁面,在地址欄輸入contract_addr地址并加載合約。

合約頁面由三個部分組成:

·左邊為合約調用區域

·中間為合約數據查詢區域

·右邊為事件查詢區域

4.1合約調用及查詢

4.1.1增發代幣

點擊合約調用的下拉菜單中選擇mint方法,在下方的參數區域分別填入以下信息:

·receiver接收代幣的地址。填入minter_key地址

·amount發行的代幣總數。填入整數1000

·Value選填項,具體可查看Value詳解。填0或者不填

·Signer這筆交易的簽名地址,如果沒有開通代付功能,交易手續費將在這個賬戶地址中扣除,在合約代碼中通過msg.sender獲取到這個地址。填入minter_key地址

Continue Captical創始人匹馬:SushiSwap大概10天后進行LP遷移:近期新協議SushiSwap發展態勢迅猛,截止發稿時其鎖倉量已突破10億美元,占 Uniswap14億鎖倉量的70%。

而面對這一情況,加密投資機構Continue Captical的創始人匹馬表示,Uniswap V3版本開發一直在推進,據傳聞表示V3面世時會同步推出代。而SushiSwap會在大概10天后進行流動性提供者(LP)遷移(注:即 SushiSwap 遷移出 Uniswap 協議,將其界面中的流動資金轉移到原生的AMM中)。

如果Uniswap V3版本提前發布,推出流動性挖礦,用戶是否會選擇跟隨SushiSwap遷移或成為一個問題。如果不遷移,流動性提供者可以獲得的代幣就是Uniswap自身的代幣。

匹馬點評到:現在看來,不僅DEX競爭大賽緩緩拉開,在開源的狀態下,其他賽道的競爭也將陸續展開各個項目的護城河到底是什么,如何面對強大的Fork和治理改進,在助力項目設計Token模型的時候真的需要深入的思考。[2020/9/1]

填寫完成后點擊執行按鈕,ConfluxStudio將自動構造交易并推送到網絡中。成功執行后可以在下方Result中看到這筆成功的交易。

4.1.2查詢代幣余額

點擊查詢區域的下拉菜單并且選擇balanceOf方法,這是在代碼中定義的查詢方法。在下方的tokenOwner填入minter_key地址并點擊執行,就可以在下方的Result中看到minter_key賬戶的Coin代幣的余額信息為1000。使用同樣方法可以查詢到receiver_key賬戶的代幣余額為0。

4.1.3轉賬代幣

在合約調用區域選擇send方法,在Parameters中分別填入:

·receiver收款人地址。填入receiver_key地址

·amount轉賬的代幣數量。填入整數200

·Signer這筆交易的簽名地址,代幣轉出的數量將會在這個賬戶中扣除。填入minter_key地址,

點擊執行完成轉賬,再次查詢代幣余額可以看到minter_key賬戶只剩下800代幣,而receiver_key賬戶則從0變成了200代幣。

五、代付功能

ConfluxStudio支持Conflux系統合約提供的代付功能。

通過系統合約可以為別的合約設置代付功能,系統合約提供給了四個方法:

·add_privilege添加合約代付白名單,在代付白名單中的地址調用該合約的方法時不需要付手續費,費用由代付賬戶支付。其中添加特殊地址0x0000000000000000000000000000000000000000代表為所有調用該合約的地址代付費用

·remove_privilege移除合約代付白名單

動態 | ICON基金會與區塊鏈咨詢公司LayerX合作:據cryptoninjas報道,ICON基金會與區塊鏈咨詢公司LayerX合作,該合作旨在激活日本ICON開發者社區,并通過代碼審計聯盟確保ICON網絡的完整性。[2018/12/18]

·set_sponsor_for_collateral設置合約儲存費(collateralforstorage)的代付賬戶及代付金額

·set_sponsor_for_gas設置合約手續費(gasfee)的代付賬戶、代付金額及每筆交易代付金額上限

啟用一個合約的代付需要設置代付的賬戶、代付金額及代付白名單。教程將會使用ConfluxStudio通過系統合約設置代付賬戶及代付金額,通過Coin合約添加代付白名單。設置完成后,minter_key賬戶調用Coin合約的方法時將不會被扣除手續費,手續費由sponsor_key賬戶代付。

5.1設置代付賬戶及代付金額

在ConfluxStudio中訪問系統合約地址

0x0888000000000000000000000000000000000001,在合約調用區域能看到前文中提及的四個設置代付的方法。

選擇set_sponsor_for_collateral方法,該方法有三個參數:

·contract_addr設置代付的合約地址。填入contract_addr

·Value設置代付金額。填入整數40

·Signer代付賬戶地址。填入sponsor_key地址

填好以上參數并執行運行,系統合約將為Coin合約設置好儲存費代付賬戶,此時sponsor_key賬戶將會被扣除40CFX。

選擇set_sponsor_for_gas方法,該方法有四個參數:

·contract_addr設置代付的合約地址。填入contract_addr

·upper_bound設置每筆交易代付的上限。填入1000000000000

·Value設置代付金額。填入整數40

·Signer代付賬戶地址。填入sponsor_key地址

填好以上參數并再次執行運行,系統合約將為Coin合約設置好手續費代付賬戶,此時sponsor_key賬戶將會再次被扣除40CFX。

完成這兩個方法的調用后Coin合約代付賬戶便設置好了,sponsor_key賬戶將為Coin合約的手續費和儲存費各提供為40CFXToken的代付服務。由于目前代付白名單中并沒有賬戶地址,因此還需要添加白名單地址才能完成代付設置。

5.2添加代付白名單

在Coin合約中集成了設置代付白名單的方法,通過調用此方法可以添加或刪除代付白名單。

現場丨標準資本ICONIZ CEO 趙晨:真正的熊市是共識的流失:8月18日,由標準資本和浮點資本主辦的BlockInvest鏈享未來·第二屆區塊鏈峰會在香港嘉里酒店舉行,CoinTime US,金色財經作為戰略合作方參與會議并進行全程報道。會上,標準資本ICONIZ CEO 趙晨在致辭中說,談論區塊鏈重點是看我們是以什么角度來看待他,是以VC視角看未來的投資價值,以對沖基金看可投資產類別,還是真實的信仰者參與到航大洪流之中。真正的熊市是共識的流失,陰跌是資金、共識流失。熊市里我們應該有更多的思考,考慮在行業的位置,將要做什么,怎么做,以找到共識。趙晨倡導從業者做行業的先行者,規則的制定者,未來標準的提倡者,共同找到區塊鏈透明性,不可篡改,分布式的價值。[2018/8/18]

在ConfluxStudio中訪問contract_addr合約,選擇add_privilege方法:

·account添加白名單的地址。填入minter_key地址

·Value不填

·Signer這筆交易的簽名地址。填入minter_key地址

運行后就成功設置了代付白名單了,至此Coin合約的代付功能設置好了。

5.3代付測試

在進行代付測試前,先查詢并記錄下minter_key賬戶的CFX余額。例如本教程中,minter_key的初始余額為97.6210937497093952CFX。

回到Coin合約調用頁面,再次調用mint方法并使用minter_key地址增發代幣1000,完成代幣增發后再次查詢minter_key的余額,仍然為97.6210937497093952CFX。

可以看到增發代幣的這筆交易,原本應該由minter_key賬戶支付的手續費,變成了由sponsor_key賬戶支付。

六、前端項目

前端項目源碼可以前往Conflux前端。

6.1預備

6.1.1下載項目并安裝依賴

·下載前端項目:gitclonegithub.com/ObsidianLabs/conflux-frontend-react

·使用npminstall或者yarn進行項目依賴安裝

6.1.2ConfluxPortal的安裝及配置

ConfluxPortal是由Conflux提供的瀏覽器插件,目前提供了Chrome及Firefox的支持,用戶可以使用ConfluxPortal進行私鑰的管理以及交易簽名。

前往ConfluxPortalGitHub下載安裝。項目的源代碼在GitHub中可以找到。

在這里需要將ConfluxStudio中生成的地址導入到ConfluxPortal中。完成插件安裝后,在ConfluxPortal的頁面中選擇Import,將ConfluxStudio中的minter_key的私鑰粘貼到輸入框中,點擊Import按鈕完成私鑰導入。

6.2運行前端項目

在運行項目之前,需要修改一些默認的環境變量。

在前面的教程中部署合約后會生成一個contractCreated,這個值便是部署在網絡中智能合約的地址。打開項目根目錄并找到.env文件,這個文件提供了項目的環境變量,將REACT_APP_CONFLUX_COIN_ADDRESS的值修改為contract_addr。

使用yarnstart啟動前端項目,開發服務器運行起來后會在瀏覽器中打開前端頁面。

項目運行起來后,頁面將顯示四個卡片信息,分別為:

·左上角Conflux網絡信息模塊

·右上角ConfluxPortal模塊

·左下角Coin合約模塊

·右下角SponsorWhitelistControl合約模塊

6.2.1連接ConfluxPortal

點擊右上角組件中的ConnecttoConfluxPortal按鈕,ConfluxPortal頁面將被打開,輸入密碼和選擇賬戶后完成連接。連接成功后,將會在按鈕下看到當前連接的賬戶地址以及賬戶中的CFX余額。

6.2.2運行Coin合約代幣增發和代幣轉賬操作

左下角的組件為Coin合約組件,可以通過這個組件調用代幣增發和代幣轉賬功能。

·代幣增發:選擇mint方法并在receiver中填入增發地址minter_key地址和在amount中填入增發代幣的數量100,點擊PushTransaction,在彈出的ConfluxPortalNotification窗口中點擊Confirm按鈕來確認交易。

·代幣轉賬:選擇send方法并在receiver中填入收款人地址receiver_key地址和在amount中轉賬代幣的數量20,點擊PushTransaction,在彈出的ConfluxPortalNotification窗口中點擊Confirm按鈕來確認交易。

6.2.3查看Coin合約中的余額

選擇balanceOf方法并在tokenOwner輸入框中填入查詢的地址,點擊QueryData按鈕可以查詢到賬戶的余額。

6.2.4查看Sent事件

選擇Sent事件并點擊QueryData可以查詢到轉賬操作所觸發的轉賬事件的記錄。

6.3前端項目解析

項目使用React進行開發。主要由三大部分組成:視圖組件、js-conflux-sdk以及ConfluxPortal。

項目根目錄下的.env環境變量,在這里定義了兩個環境變量,分別為:

·REACT_APP_CONFLUX_NODE_RPC:Conflux的網絡節點地址,目前默認為Oceanus網絡的地址

·REACT_APP_CONFLUX_COIN_ADDRESS:已部署的Coin智能合約地址

6.3.1視圖組件

視圖組件在項目的src/components中,其中App.js為頁面的主入口,負責頁面的排列及合約信息的讀取。

ConfluxNetwork.js

負責渲染Conflux網絡信息,NodeURL的值為.env環境變量文件下的REACT_APP_CONFLUX_NODE_RPC設置的值。

ConfluxPortal.js

負責渲染ConfluxPortal的連接信息,并提供了連接ConfluxPortal的交互按鈕。

·connectConfluxPortal調用ConfluxPortal的enable方法啟用conflux,完成enable后調用getAccount方法獲取到Portal中的賬戶。

·refreshBalance調用ConfluxSDK的getBalance方法來更新賬戶余額信息

·renderPortalButton根據當前不同的狀態,渲染連接Portal的按鈕

ConfluxContract.js

負責渲染Conflux合約信息,本項目中提供了Coin和SponsorWhitelistControl兩個合約。

ConfluxContract.js由三個組件組成,分別為:

·ConfluxContract負責根據傳入的合約abi來渲染合約的信息,包括合約地址、合約方法和事件,合約提交的交互邏輯及顯示執行后的結果

·ContractMethods負責渲染合約abi中的方法和事件的表單及相對應的按鈕

·ConfluxForm負責根據方法或事件的abi來渲染輸入表單

lib

lib在項目的src/lib中,這里的文件主要是為視圖提供包括連接網絡、構造交易、獲取賬戶、讀取合約等服務。

七、總結

在本開發教程中,我們學習了如何使用ConfluxStudio來完成一個完整的CoinDApp開發,其中包括了:

·使用鑰匙對管理器創建賬戶及導出賬戶私鑰

·切換Oceanus網絡,查看網絡信息

·賬戶申請CFXToken

·創建、編譯并部署項目

·解析Coin合約代碼,學習如何編寫合約的讀寫方法及事件

·使用合約瀏覽器調用Coin合約的代幣增發、轉賬、查詢余額及查詢事件

·設置并使用智能合約的代付功能

·將私鑰導入ConfluxPortal并連接前端項目

·在前端項目中調用Coin合約的代幣增發、轉賬、查詢余額及查詢事件

·解析前端項目代碼,學習如何通過ConfluxPortal和ConfluxJavaScriptSDK連接網絡并實現交易

八、關于ConfluxBounty

Conflux基金會為了鼓勵用戶參與生態建設,提供了ConfluxBounty賞金平臺。通過完成Bounty賞金平臺發布的各項任務,參與者可以獲得FC(FansToken)作為獎勵。

8.1FC的價值

FC,全稱FansCoin,是由Conflux基金會與社區成員共同研發的生態代幣,用于記錄和感謝對Conflux生態建設做出貢獻的社區成員。FC目前在Oceanus上運行,Conflux基金會承諾,在主網上線后,鎖定和未鎖定的FC都可以與主網CFX進行1:1承兌,以此保障所有社區成員的勞動成果都可以獲得獎勵。

FC賞金分配方案會展示在賞金任務詳情頁中,包括最高獎金數量、獎金分配人數、獎金數量分布、排行名次確定方式等信息。賬號余額中的賞金獎勵可以隨時申請提現至Conflux錢包。Conflux團隊會對所有的提現申請進行審核。

對于已經通過的提現申請,Conflux團隊會在每周二中午12點進行提幣操作。完成提幣操作后,您的Conflux錢包將會收到您提現的賞金獎勵。

8.2Bounty的價值

ConfluxBounty(bounty.conflux-chain.org)的宗旨是為每一個通證找到價值。Bounty分為幾個板塊:技術、品牌、社群、資源、其他等。

·技術板塊:分為產品、SDK、教程、開發、測試等;主要是獎勵社區的一些技術資源貢獻者。

·品牌板塊:分為文案、設計、視頻、媒體、推廣等;主要是獎勵在各大網絡平臺分享Conflux的各種最新動態,擴大Conflux的生態影響力的活躍貢獻者;

·社群板塊:分為活動、推廣等;主要是獎勵舉辦各種Conflux相關線上線下活動,幫助解答社群問題,活躍日常氣氛等。

·資源板塊:分為政務、商務、人力等;主要是獎勵為生態中引進企業資源,擴建Conflux生態等。

·其他板塊:分為周邊、采購等;主要是獎勵一些其他的零散任務。

ConfluxStudio下載地址和更新日志:

https://github.com/ObsidianLabs/ConfluxStudio/releases

ConfluxdApp開發教程:

https://github.com/ObsidianLabs/conflux-dapp-tutorial

ConfluxdApp教程相關建議:

https://github.com/ObsidianLabs/conflux-dapp-tutorial/issues

Tags:CONFLUXLUXNFLOmni Consumer ProtocolConfluxThe Luxury Coininfluencechain

瑞波幣
okex:BTC多頭末日來臨?空頭繼續發力扭轉乾坤?-ODAILY_歐okex易官網

大家好,誠信立本,德行天下,用心研判趨勢和分析,傳遞有價值的投資理念!希望價有所值,值有所得!8.3BTC技術走勢分析:昨日一波強勢下跌力度非常大,每天連續不斷的上漲刷新高點.

1900/1/1 0:00:00
BIT:?BTC慢漲消耗,后市多空爭奪激烈-ODAILY_ETH

資訊: 上半年泛區塊鏈領域融資金額同比增長113.06%根據公開資料顯示的上半年所有投融資事件,在全球資產荒加劇的背景下,上半年泛區塊鏈領域的投融資規模較去年同期顯著擴大.

1900/1/1 0:00:00
TCH:成都鏈安:F5 BIG-IP遠程代碼執行漏洞預警CVE-2020-5902-ODAILY_區塊鏈工程專業學什么課程比較好

漏洞威脅:高 受影響版本 BIG-IP15.x:15.1.0/15.0.0BIG-IP14.x:14.1.0~14.1.2BIG-IP13.x:13.1.0~13.1.3BIG-IP12.

1900/1/1 0:00:00
BTC:BTC反彈無力,沖不上9300就是空,目標8600-ODAILY_GBTC

BTC復盤分析 昨日盤面仍然維持空頭略微強勢的狀態,價格觸碰8800重要波段需求區后多次反彈,但反彈力量漸弱勢,28號的反彈僅僅持續了2天,30號就停滯了,這雖然目前價格沒有創新低.

1900/1/1 0:00:00
DAP:行情回調到尾聲,后期破位勇敢做空-ODAILY_ETH

行情分析: 比特幣現在從總體局勢來看,即將走完最后的調整的階段,目前五浪已經走完,后期跌破下支撐線則還將持續有一波空勢延續,目前四小時60日均線一直壓著,行情也是并沒有太大的向上動力.

1900/1/1 0:00:00
比特幣:比特幣行情分析:昨天夜間出現瀑布,今天后市如何-ODAILY_CFT

昨天到今天的9點,24小時凈流入-4.15美元,其中主力凈流入-1.91億美元,散戶凈流入-2.24億美元.

1900/1/1 0:00:00
ads