往期回顧:
Rust智能合約養成日記合約狀態數據定義與方法實現Rust智能合約養成日記編寫Rust智能合約單元測試在本期Rust智能合約開發Blog中,BlockSec將為大家介紹如何將一個簡單的示例智能合約部署至NEAR測試網絡(TestNet)中,執行合約,并查詢合約的執行結果。
當合約的開發者們實現了合約的主要邏輯,進行了單元測試后,開發者可將該合約項目編譯成WASM字節碼,部署到NEAR的測試鏈上,為最后部署到主網(MainNet)做準備。
1.NEAR網絡介紹
NEARProtocol作為一種協議,意味著可以存在有基于該協議的多種獨立網絡。NEAR協議所制定的規范與標準NEARProtocolSpecificationsandStandards指明了基于NEAR協議的不同鏈,其創世區塊配置GenesisConfig中chain_id各不相同。
我們常用的主要有如下三種網絡:
TestNet每一個智能合約項目最終都需要在區塊鏈網絡上運行,以實現項目的功能。然而,對于一個新項目來說,項目團隊往往會先將項目部署在測試網之后,開發團隊可以選擇將該合約正式地部署至主網中。LocalNetLocalNet不同于TestNet。LocalNet運行于本地,因此部署在該鏈上的合約與交易數據均不向外部網絡公開。如果在合約項目部署至TestNet或MainNet之前,開發者不希望泄漏任何該項目相關的重要信息,LocalNet將是一個不錯的選擇。
CoinsPaid:黑客攻擊為Lazarus Group策劃,客戶資金完好無損:金色財經報道,CoinsPaid發布聲明稱,7月22日CoinsPaid遭遇黑客攻擊,導致3730萬美元被盜。我們懷疑最強大的黑客組織之一Lazarus Group應對此負責。其受害者名單還包括世界頂級公司:索尼(8100萬美元)、Axie Infinity(6.25億美元)、Horizo??n Bridge(1億美元)、Atomic Wallet(1億美元)和Alphapo(2300萬美元)。該團隊表示,作為第一要務,已確保客戶資金完好無損。不幸的是,這次攻擊影響了平臺的可用性,公司的收入也受到了影響。
CoinsPaid首席執行官Max Krupyshev強調:“部分停機后,我們的服務正在新的安全環境中一項一項啟動并運行。我們預計還需要幾天時間來整理次要細節并確保系統順利運行” 。幾周內,CoinsPaid將組織一次圓桌會議,與所有Lazarus受害者宣布一項新舉措,旨在最大限度地減少和防止未來此類攻擊。[2023/7/27 16:01:14]
2.NEARCLI安裝
NEARCLI(CommandLineInterface)是一個NodeJS命令行接口,它底層利用near-api-js連接到上述所介紹的網絡中,并與之交互。因此在安裝之前,我們需要首先安裝npm,隨后我們將在Linux中利用npm執行如下安裝命令安裝NEARCLI。
Web 3.0登錄服務提供商Torus推出白標服務:官方消息,Web 3.0登錄服務提供商Torus宣布為區塊鏈網絡和品牌提供白標(White-label)的錢包服務,他們表示該服務與任何區塊鏈都可以兼容。雖然此前Torus支持了以太坊、幣安智能鏈、Polygon和xDai等網絡,但是其他希望增加Torus支持的區塊鏈可以通過Torus的白標版本實現,可以利用目前Torus的核心功能,比如反向域名解析器或者法幣通道等。[2021/8/4 1:34:09]
$sudonpminstall-gnear-cli?
執行如下命令可查看NEARCLI的安裝版本,并檢查是否安裝成功。
$near--version
3.在TestNet中部署合約
3.1.注冊TestNet賬戶
新用戶可在https://wallet.testnet.near.org頁面中注冊新的TestNet錢包,只需要輸入用戶名即完成注冊,例如statusmessage.testnet。
隨后在https://explorer.testnet.near.org中,我們可以搜索并查看有關TestNet中該賬戶的有關信息,如下所示:
Crust Network已生成近1800萬枚CRU 將于近期分發至對應賬戶:3月2日,波卡生態中的分布式存儲項目Crust Network發推稱,為主網發布做準備及反映CRU代幣分布情況,根據白皮書,Crust Network已經產生了17999990個CRU。在接下來的幾天里,代幣將被發送到相應的賬戶(基金會、團隊、代幣銷售、社區開發等)。官方提醒稱,代幣分發或解鎖時間表沒有改變,且也不屬于代幣空投。上述代幣生成事件與以前的所有CRU代幣計劃及白皮書一致。[2021/3/2 18:06:53]
在TestNet中,每一個新建賬戶中將含有200?的原生余額。
3.2.在NEARCLI中登錄該賬戶
由于我們已經安裝NEARCLI,且已申請了NEARTestNet中的用戶賬戶。下面可以嘗試在NAERCLI中登錄該賬戶:
$nearlogin
隨著上述命令的執行,NEARCLI將喚起一個鏈接,并需要用戶手動點擊登陸上述statusmessage.testnet賬戶。
聲音 | 美國足球明星Russell Okung:比特幣改變了我對世界的看法:美國足球明星Russell Okung在推特上發文稱,比特幣改變了我對世界的看法。如果愛比特幣是件錯事,我不后悔。其推文很多都在推廣稱贊比特幣,Russell Okung擁有推特粉絲約15.6萬。[2019/5/25]
3.3.查看賬戶相關信息
同時,我們可以通過NEARCLI查詢特定賬戶的相關信息
$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'?}
3.4.合約編譯與部署
在將合約部署之前,我們首先需要對合約進行編譯,如下命令可利用cargo編譯得到具體的WASM文件status_message.wasm.它通常位于項目的target/wasm32-unknown-unknown/release/目錄下。
動態 | Ethfinex Trustless將于3月13日遷移至0x協議的V2版本:據交易平臺Ethfinex官方消息,Ethfinex Trustless將于3月13日遷移至0x協議的V2版本。[2019/3/8]
$RUSTFLAGS='-Clink-arg=-s'cargo+stablebuild--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:NETNEARESTTESTDEHR Networknear幣預測NFT All Best ICOtest幣價格
據Coindesk10月23日報道,Terra區塊鏈的開發公司TerraformLabs聯合創始人DoKwon正在起訴美國證券交易委員會.
1900/1/1 0:00:00據Decrypt消息,10月24日,棱鏡門披露者及隱私倡導者愛德華-斯諾登發推抨擊世界幣項目,稱其使用人體進行加密.
1900/1/1 0:00:00據上海證券報10月15日消息,隨著七國集團財長和央行行長日前針對央行數字貨幣確定了共同指導原則,全球央行數字貨幣“競賽”已經從研發領域的你追我趕,升級到規則制定話語權的全力爭奪.
1900/1/1 0:00:0010月26日,由萬向區塊鏈實驗室主辦的第七屆區塊鏈全球峰會在上海舉行。以太坊創始人VitalikButerin在會上發表《通往以Layer2為中心的以太坊之路》主題演講,以下為演講全文:Vita.
1900/1/1 0:00:00一些人認為,需經許可的分布式賬本技術可以比開放的區塊鏈表現得更好,因為它是針對后者的問題而調整的。這樣的系統也稱為“許可區塊鏈”,就好像區塊鏈是一個高級概念,而“許可”是其變化形式之一.
1900/1/1 0:00:00在前文《誰允許你訪問了?》中,介紹了區塊鏈中的權限層級、基于提案投票的權限管理模型,那么基于提案投票的權限管理模型在區塊鏈中是如何使用的呢?下文將進行介紹.
1900/1/1 0:00:00