相關文章:
智能合約養成日記合約狀態數據定義與方法實現
Rust智能合約養成日記編寫Rust智能合約單元測試
在本期Rust智能合約開發Blog中,BlockSec將為大家介紹如何將一個簡單的示例智能合約部署至NEAR測試網絡(TestNet)中,執行合約,并查詢合約的執行結果。
當合約的開發者們實現了合約的主要邏輯,進行了單元測試后,開發者可將該合約項目編譯成WASM字節碼,部署到NEAR的測試鏈上,為最后部署到主網(MainNet)做準備。
1.NEAR網絡介紹
NEARProtocol作為一種協議,意味著可以存在有基于該協議的多種獨立網絡。NEAR協議所制定的規范與標準NEARProtocolSpecificationsandStandards指明了基于NEAR協議的不同鏈,其創世區塊配置GenesisConfig中chain_id各不相同。
我們常用的主要有如下三種網絡:
TestNet
每一個智能合約項目最終都需要在區塊鏈網絡上運行,以實現項目的功能。然而,對于一個新項目來說,項目團隊往往會先將項目部署在測試網(TestNet)上,用來測試該智能合約項目的功能和相關業務邏輯。
基于Arbitrum AnyTrust技術的主網Nova對開發人員開放:7月12日消息,Arbitrum官方博客今日宣布,第一條基于Arbitrum AnyTrust技術構建的新鏈Arbitrum Nova已在主網上運行,并開放供開發人員部署應用程序。今年早些時候,Arbitrum發布了AnyTrust,這是針對超低成本交易優化、更安全的新技術。隨著Nova的運行,Arbitrum有兩條獨立的鏈在主網上實時運行,可支持幾乎所有區塊鏈用例。Nova將成為游戲和社交應用程序的首選解決方案,而Arbitrum One將繼續覆蓋DeFi和NFT項目。(Medium)[2022/7/12 2:06:47]
MainNet
當合約在測試網絡中進行了多輪的測試和獨立的安全審查之后,開發團隊可以選擇將該合約正式地部署至主網中。
LocalNet
LocalNet不同于TestNet。LocalNet運行于本地,因此部署在該鏈上的合約與交易數據均不向外部網絡公開。如果在合約項目部署至TestNet或MainNet之前,開發者不希望泄漏任何該項目相關的重要信息,LocalNet將是一個不錯的選擇。
2.NEARCLI安裝
TrustSwap正在收購一家加密公司,將于下周正式公布:今天早些時候,TrustSwap透露目前正在收購另一家加密公司。該聲明稱,TrustSwap將收購另一家加密公司,并將納入其所有資產、團隊、IP等。TrustSwap預計,他們將在未來7天內獲得所有細節,并簽署合同。(AMBCrypto)[2020/11/19 21:23:49]
NEARCLI(CommandLineInterface)是一個NodeJS命令行接口,它底層利用near-api-js連接到上述所介紹的網絡中,并與之交互。因此在安裝之前,我們需要首先安裝npm,隨后我們將在Linux中利用npm執行如下安裝命令安裝NEARCLI。
$sudonpminstall-gnear-cli
執行如下命令可查看NEARCLI的安裝版本,并檢查是否安裝成功。
$near--version
3.在TestNet中部署合約
3.1.注冊TestNet賬戶
新用戶可在https://wallet.testnet.near.org頁面中注冊新的TestNet錢包,只需要輸入用戶名即完成注冊,例如statusmessage.testnet。
美國足球明星Russell Okung投資比特幣支付應用Fold:美國足球明星Russell Okung創辦的公司Okung Ventures已投資比特幣支付應用Fold,以幫助加密貨幣持有者獲得BTC,并將其用于消費。Okung在接受《福布斯》采訪時表示,找到更多獲取比特幣的方法與讓更多人對購買比特幣感興趣同樣重要。(Cointelegraph)[2020/4/22]
隨后在https://explorer.testnet.near.org中,我們可以搜索并查看有關TestNet中該賬戶的有關信息,如下所示:
在TestNet中,每一個新建賬戶中將含有200?的原生余額。?
3.2.在NEARCLI中登錄該賬戶
由于我們已經安裝NEARCLI,且已申請了NEARTestNet中的用戶賬戶。下面可以嘗試在NAERCLI中登錄該賬戶:
$nearlogin
隨著上述命令的執行,NEARCLI將喚起一個鏈接,并需要用戶手動點擊登陸上述statusmessage.testnet賬戶。
3.3.查看賬戶相關信息
同時,我們可以通過NEARCLI查詢特定賬戶的相關信息?
動態 | 火幣美國存取款服務商Prime Trust推出實時結算網絡PrimeX:據CoinDesk報道,總部位于內華達州的金融機構Prime Trust已經推出了一個實時結算網絡PrimeX,用于客戶之間的資產轉移,可以讓他們在交易加密貨幣、或是互相配售的時候立刻獲得資金。更重要的是,Prime Trust透露該服務不會收取任何費用,支持7*24服務,而且對轉賬金額沒有限制。目前,Prime Trust的最大競爭對手是Signature Bank,他們之前也推出了類似的Signet系統,截至今年二月已有100多家客戶每天轉移數百萬美元。據悉,Prime Trust為火幣美國交易所HBUS提供法定貨幣存款和取款服務。[2019/7/30]
$nearstatestatusmessage.testnetAccountstatusmessage.testnet{??amount:'199999959035075000000000000',???block_hash:'8iomNEFNa4LQB54ehTPBGu8bBfotistoWrBcYJfxm8vA',???block_height:68318068,???code_hash:'11111111111111111111111111111111',???locked:'0',???storage_paid_at:0,???storage_usage:264,???formattedAmount:'199.999959035075'?}
動態 | 朝鮮支持的Lazarus集團收購5.71億美元加密貨幣:自2017年以來,已有超過8.82億美元的加密貨幣從網上交易中被盜,由朝鮮政府資助的Lazarus要為大部分被盜代幣負責。根據Next Web在2018年10月19日發表的一篇文章,該集團收購了超過5.71億美元的加密貨幣,并將在未來繼續這樣做。[2018/10/22]
3.4.合約編譯與部署
在將合約部署之前,我們首先需要對合約進行編譯,如下命令可利用cargo編譯得到具體的WASM文件status_message.wasm.它通常位于項目的target/wasm32-unknown-unknown/release/目錄下。
$RUSTFLAGS='-Clink-arg=-s'cargostablebuild--targetwasm32-unknown-unknown--release
同時,我們可以給statusmessage.testnet創建一個子賬戶,名為contract01.statusmessage.testnet,用于合約的部署
$cdtarget/wasm32-unknown-unknown/release$exportMASTER_ACCOUNT=statusmessage.testnet$nearcreate-accountcontract01.$MASTER_ACCOUNT?????????????--initialBalance10?????????????--masterAccount$MASTER_ACCOUNTAccountcontract01.statusmessage.testnetfornetwork"testnet"wascreated.
接著我們便可以使用neardeploy命令來幫助我們部署該合約。
$neardeploy--accountIdcontract01.$MASTER_ACCOUNT\????????????--wasmFilestatus_message.wasm
若合約部署成功,我們可以獲得如下信息:
Startingdeployment.Accountid:contract01.statusmessage.testnet,node:(https://rpc.testnet.near.org),helper:(https://helper.testnet.near.org),file:status_message.wasmTransactionId4oDYA8wPLJuKwDumJxEGubeJBA9Ep13MLXSf34q9ydRmToseethetransactioninthetransactionexplorer,pleaseopenthisurlinyourbrowser(https://explorer.testnet.near.org/transactions/4oDYA8wPLJuKwDumJxEGubeJBA9Ep13MLXSf34q9ydRm)Donedeployingtocontract01.statusmessage.testnet
3.5調用合約函數
當我們成功部署合約至TestNet后,部署該合約的賬戶contract01.statusmessage.testnet,即為該合約的地址。為驗證TestNet中StatusMessage合約是否能夠正常運行。我們可以調用set_status來設定合約內置的屬性。
$nearcall--accountId$MASTER_ACCOUNT\???contract01.$MASTER\_ACCOUNTset\_status'{"message":"Hi!2021"}'
如下是調用該合約中函數set_status返回的信息
Schedulingacall:contract01.statusmessage.testnet.set_status({"message":"Hi!2021"})TransactTransactionIdE9dsw8H9ztDN18DDvXKTBPvBLWHew7TtuWsLgg6uvesNToseethetransactioninthetransactionexplorer,pleaseopenthisurlinyourbrowser(https://explorer.testnet.near.org/transactions/E9dsw8H9ztDN18DDvXKTBPvBLWHew7TtuWsLgg6uvesN)''
可見該筆StatusMessage合約函數調用交易能夠正常執行,并返回了具體的TransactionID,即E9dsw8H9ztDN18DDvXKTBPvBLWHew7TtuWsLgg6uvesN
3.6交易查詢
NEAR為社區提供了一個數據瀏覽查詢平臺NEARExplorer。用戶可以在該平臺中搜索指定網絡中的賬戶ID,交易哈希,交易區塊等實時鏈上信息。
利用該筆交易的ID可以在NEARExplorer查詢具體的交易細節。https://explorer.testnet.near.org/transactions/E9dsw8H9ztDN18DDvXKTBPvBLWHew7TtuWsLgg6uvesN
本期總結和預告
這一期中我們詳細的介紹了如何將一個智能合約編譯,并且部署到測試鏈上,接著如何調用指定的合約中的函數,并且通過explorer查詢特定交易的狀態。通過前三期的Rust智能合約養成日記,相信同學們大概知道如何從頭開始寫一個簡單的合約,并且將其部署。從下一期開始BlockSec將主要從安全的角度,向大家進一步展示如何編寫一個安全的智能合約。
Tags:NETNEARESTTESTSantiment Network Tokennear幣未來會破1000嗎Decentralized Community Investment ProtocolTEST價格
1.什么是流動性挖礦? 每一個支持自動做市的交易對市場都會配置一個對應的流動性池子,用戶向流動性池中注入資金便自動成為流動性提供者,間接成為做市商,并獲取交易的手續費分紅.
1900/1/1 0:00:00零號地球數字藏品電商平臺與杜威中心達成戰略合作,獲得“梵高再現”“VanGoghAlive”系列作品的中國境內獨家數字藏品首發授權.
1900/1/1 0:00:00尊敬的中幣用戶: ????中幣將于香港時間2022年3月29日上線StargateFinance.
1900/1/1 0:00:00親愛的用戶: 為回饋廣大用戶,BKEX現開展"ASH、FLOOR充值福利"活動詳情如下: 一、活動時間 2022年3月29日12:00-4月5日12:00BKEX Global將于今日15:00.
1900/1/1 0:00:00原文作者:BlockScience原文標題:AlphaBonds:Risk-adjustedBondingCurvesforFinancingImpactBlockScience和ixo在Int.
1900/1/1 0:00:00一、項目介紹 Eagle代幣是Etherum區塊鏈上的社區代幣,Eagle代幣是我們的基礎貨幣,允許投資者在他們的錢包中持有數百萬甚至數十億。我們的共同目標是大規模采用Etherum.
1900/1/1 0:00:00