木星链 木星链
Ctrl+D收藏木星链
首页 > BNB > 正文

NET:Rust智能合约养成日记(3)

作者:

时间:1900/1/1 0:00:00

相关文章:

智能合约养成日记合约状态数据定义与方法实现

Rust智能合约养成日记编写Rust智能合约单元测试

在本期Rust智能合约开发Blog中,BlockSec将为大家介绍如何将一个简单的示例智能合约部署至NEAR测试网络(TestNet)中,执行合约,并查询合约的执行结果。

当合约的开发者们实现了合约的主要逻辑,进行了单元测试后,开发者可将该合约项目编译成WASM字节码,部署到NEAR的测试链上,为最后部署到主网(MainNet)做准备。

1.NEAR网络介绍

NEARProtocol作为一种协议,意味着可以存在有基于该协议的多种独立网络。NEAR协议所制定的规范与标准NEARProtocolSpecificationsandStandards指明了基于NEAR协议的不同链,其创世区块配置GenesisConfig中chain_id各不相同。

我们常用的主要有如下三种网络:

TestNet

每一个智能合约项目最终都需要在区块链网络上运行,以实现项目的功能。然而,对于一个新项目来说,项目团队往往会先将项目部署在测试网(TestNet)上,用来测试该智能合约项目的功能和相关业务逻辑。

外媒:加密托管公司Protego Trust已解雇大部分员工:金色财经报道,据一位知情人士透露,加密托管公司Protego Trust本周被迫解雇了大部分员工。据悉,该公司一直在寻求获得新的融资,但一直未能成功。Protego Trust曾于2021年完成7000万美元A轮融资,Coinbase Ventures、FTX和Digital Currency Group等公司参投。2022年2月,该公司任命OCC前代理审计长Brian Brooks为董事会成员。Protego拥有美国联邦信托执照。(CoinDesk)[2023/3/2 12:37:41]

MainNet

当合约在测试网络中进行了多轮的测试和独立的安全审查之后,开发团队可以选择将该合约正式地部署至主网中。

LocalNet

LocalNet不同于TestNet。LocalNet运行于本地,因此部署在该链上的合约与交易数据均不向外部网络公开。如果在合约项目部署至TestNet或MainNet之前,开发者不希望泄漏任何该项目相关的重要信息,LocalNet将是一个不错的选择。

2.NEARCLI安装

NEARCLI(CommandLineInterface)是一个NodeJS命令行接口,它底层利用near-api-js连接到上述所介绍的网络中,并与之交互。因此在安装之前,我们需要首先安装npm,随后我们将在Linux中利用npm执行如下安装命令安装NEARCLI。

Taurus获瑞士证券牌照,将于5月10日推出Taurus数字交易所:据官方消息,瑞士金融科技公司Taurus SA周一从该国金融监管机构FINMA获得了证券牌照,可以运营独立监管的数字资产市场。据悉,Taurus将于5月10日推出Taurus数字交易所(TDX)。[2021/4/19 20:36:57]

$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中该账户的有关信息,如下所示:

在TestNet中,每一个新建账户中将含有200?的原生余额。?

3.2.在NEARCLI中登录该账户

Crust Network 品牌负责人佑安 :Crust Network即将开启去中心化存储市场:2021年1月25日晚,由Gate.io主办的直播专访节目《酒局币赴》邀请到Crust Network 品牌负责人——佑安直播分享近期最新发展。直播期间佑安与Gate.io合伙人酒儿就 Crust Network开启去中心化存储市场进行了探讨与交流。佑安表示,Maxwell预览网——Maxwell 1.0 版本正式上线,所有用户都可以通过测试网代币在网络上进行交易、担保和存储,也可以提供存储空间成为节点进行挖矿。Crust相比Filecoin具有成本低、成熟度高、落地性高等优点,挖矿门槛更低,用户落地更高效便捷。对于无币、想参挖矿的用户,也可以通过选择可以信赖的担保人的形式参与挖矿。同时,Crust Network作为波卡生态领域唯一一个存储类项目,对于波卡卡槽拍卖非常有信心,并将积极备战波卡插槽拍卖,将拿出生态发展的约40%用于波卡插槽竞拍以及相关的支出。[2021/1/25 13:28:13]

由于我们已经安装NEARCLI,且已申请了NEARTestNet中的用户账户。下面可以尝试在NAERCLI中登录该账户:

$nearlogin

随着上述命令的执行,NEARCLI将唤起一个链接,并需要用户手动点击登陆上述statusmessage.testnet账户。

动态 | 币安官方钱包Trust Wallet支持ZIL:6月12日,币安官方钱包Trust Wallet宣布添加对Zilliqa(ZIL)的支持。[2019/6/12]

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/目录下。

公告 | OKEx开放EON\\EOP\\HORUS\\CHL提现功能:据OKEx公告,OKEx将于11月8日11:00开放EON\\EOP\\HORUS和CHL的提现。[2018/11/8]

$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将主要从安全的角度,向大家进一步展示如何编写一个安全的智能合约。

标签:NETESTNEARTESTAIOZ NetworkGolden Regent Investmentnear币市值TEST价格

BNB热门资讯
AIN:除了提供数据和API服务之外,企业还能如何在智能合约经济中变现?

区块链技术的核心价值主张正在从cryptocurrency转向智能合约,这与当年互联网从电子邮件发展至万维网的路径如出一辙。智能合约效率更高且对手方风险更小,因此势必将成为主流的数字协议.

1900/1/1 0:00:00
GAT:Gate.io博客 | Andre Cronje這次真的要退出DeFi領域了

內容摘要DeFi領域最知名、最受尊敬的先驅之一再次正式離開DeFi圈。AndreCronje因其對Yearn金融的貢獻而聞名,近年來已被認定爲超級明星.

1900/1/1 0:00:00
区块链:疫情之下,元宇宙婚礼考虑一下?

突如其来的疫情打乱了人们正常的生活节奏。提前准备好的工作计划、外出游玩甚至是结婚计划都在反复的疫情中被推迟或取消。对于有结婚计划的新人来说,婚纱照不能如约拍摄、婚宴不能如期举行实属遗憾.

1900/1/1 0:00:00
BIT:BitWell研究院——XCarnival(XCV)项目解析

1.研究院短评XCarnival是少有的针对元宇宙服务的基础设施项目,非常好的契合了当前和记下来的一波元宇宙热潮,占据了天时.

1900/1/1 0:00:00
ANY:關於支持Anyswap(ANY)智能合約置換及重新命名的公告

親愛的用戶:幣安將支持Anyswap智能合約置換及重新命名的計劃。Anyswap代幣將被更名為Multichain.

1900/1/1 0:00:00
比特幣預測大賽: 誰是下一個中本聰?

亲爱的8V用户:「比特币之父」中本聪的注册生日,与美国政府强制执行6102法案的日期为同一天,也就是4月5日,值得一提的是,中本聪当时还选择了1975年作为他注册生日的年份.

1900/1/1 0:00:00