往期回顧:
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將是一個不錯的選擇。
ZachXBT:Lazarus Group盜取的2.9 億美元資金已在鏈上匯集:金色財經報道,加密偵探ZachXBT發現,被朝鮮犯罪集團Lazarus Group盜取的2.9 億美元黑客資金已在鏈上匯集,其中包括來自 Harmony Protocol 黑客攻擊、Atomic Wallet 漏洞利用、CoinsPaid 黑客攻擊和 Alphapo 熱錢包黑客攻擊的資金。
分析顯示,Coinspaid 黑客攻擊的資金與 Harmony 漏洞之間存在聯系,涉及超過 54 ETH 的轉賬。此外,一個以 0b11 結尾的加密錢包從包含從 Harmony 盜取的資金的錢包中收到了超過 3900 USDT。ZachXBT補充稱,此類漏洞的資金通常最終會流入Tron的場外交易平臺。[2023/8/2 16:12:26]
2.NEARCLI安裝
NEARCLI(CommandLineInterface)是一個NodeJS命令行接口,它底層利用near-api-js連接到上述所介紹的網絡中,并與之交互。因此在安裝之前,我們需要首先安裝npm,隨后我們將在Linux中利用npm執行如下安裝命令安裝NEARCLI。
$sudonpminstall-gnear-cli?
執行如下命令可查看NEARCLI的安裝版本,并檢查是否安裝成功。
Trust Wallet:Webverse聯創被盜竊400萬美元加密資產是源于社會工程攻擊:金色財經報道,多鏈非托管錢包 Trust Wallet 發推表示,此前 Web3 元宇宙游戲引擎 Webverse 聯合創始人表示未泄露助記詞,僅因被拍照即被盜竊價值 400 萬美元的加密盜竊。經調查,Trust Wallet 認為這是一次社會工程攻擊引發的安全事件,涉及來自意大利羅馬的有組織犯罪小組,已知案件地點在米蘭和巴塞羅那。
該案例中,用戶資金最初是在一個多簽錢包中,在他們與犯罪分子見面辦理業務的前幾周,用戶被犯罪分子說服將資金轉移到一個新的非多簽錢包中,隨后犯罪分子分享了一份 NDA PDF 文件和 KYC 信息。而用戶向犯罪分子展示資金證明并拍照后,新錢包就被掏空,所以才有了最初通過照片竊取資金的說法。[2023/2/9 11:56:27]
$near--version
3.在TestNet中部署合約
3.1.注冊TestNet賬戶
新用戶可在https://wallet.testnet.near.org頁面中注冊新的TestNet錢包,只需要輸入用戶名即完成注冊,例如statusmessage.testnet。
數字資產托管商Hex Trust作為密鑰持有者加入tzBTC生態系統:數字資產托管商Hex Trust宣布作為密鑰持有者加入tzBTC生態系統。tzBTC允許用戶和應用程序直接在Tezos區塊鏈上交易比特幣。tzBTC將BTC的流動性和品牌帶入Tezos生態系統,在Tezos上啟用BTC支持的用例。Tezos上的開發者可以使用tzBTC在Tezos區塊鏈上構建新的金融應用程序。(Crypto Ninjas)[2021/8/15 22:14:58]
隨后在https://explorer.testnet.near.org中,我們可以搜索并查看有關TestNet中該賬戶的有關信息,如下所示:
在TestNet中,每一個新建賬戶中將含有200?的原生余額。
3.2.在NEARCLI中登錄該賬戶
由于我們已經安裝NEARCLI,且已申請了NEARTestNet中的用戶賬戶。下面可以嘗試在NAERCLI中登錄該賬戶:
$nearlogin
隨著上述命令的執行,NEARCLI將喚起一個鏈接,并需要用戶手動點擊登陸上述statusmessage.testnet賬戶。
聲音 | 陳偉星:區塊鏈被騙子搞成了trust less:陳偉星剛剛在微博表示:區塊鏈的目的是trustless,被貪婪的騙子們搞成了trust less,馬上各種起訴、追責、處罰,就要trust not at all了。[2018/12/14]
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'?}
動態 | IOHK通過Kudelski Security進行第三方審計Icarus項目:據ambcrypto消息,ADA創始人Charles Hoskinson最近宣布由第三方安全審計公司Kudelski Security為其Icarus項目進行審計。IOHK決定進行第三方審計,是因為認為內部審計可能會錯過識別安全問題的關鍵方面。Icarus是IOHK開發的用于Cardano輕錢包的參考實現的代碼。CoinMarketCap行情顯示,ADA全球均價現為0.076美元,24小時漲幅1.50%。[2018/10/21]
3.4.合約編譯與部署
在將合約部署之前,我們首先需要對合約進行編譯,如下命令可利用cargo編譯得到具體的WASM文件status_message.wasm.它通常位于項目的target/wasm32-unknown-unknown/release/目錄下。
$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將主要從安全的角度,向大家進一步展示如何編寫一個安全的智能合約。
元宇宙見聞原創 作者|Eiffer 編輯|Camila? 三四十年前,人們的機遇是“下海”,在改革開放的浪潮中,誕生了萬元戶、走出了致富路;二十年前,人們的機會是互聯網與電商.
1900/1/1 0:00:00原文:香港金管局 10月4日,香港金融管理局發布題為《e-HKD:Atechnicalperspective》,關于零售層面央行數碼貨幣的技術白皮書.
1900/1/1 0:00:00來源:澎湃新聞 作者:戚文麗李根林 10月8日,區域性數字人民幣綜合服務平臺——“數字人民幣”相城生活服務平臺正式上線.
1900/1/1 0:00:00背景 對于區塊鏈的發展來說,究竟是什么推動了其迅速普及以及各類應用的落地,是技術的便捷?是某些藍海一般的紅利效用,還是全球范圍內各類創業者的涌入?事實上.
1900/1/1 0:00:00監管機構正在逼近。為了滿足機構合規部門的要求,將市場職能拆分為各自的部分——托管、聚合器和主經紀商業務——是一回事。讓監管機構滿意是另一回事.
1900/1/1 0:00:00來源:深圳衛視深視新聞 近日,《2021年全球高相關度區塊鏈授權發明專利排行》發布顯示:排名前十的公司有七家來自中國。其中,螞蟻集團和騰訊科技分列一二名.
1900/1/1 0:00:00