LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > Terra 智能合约启动指南

Terra 智能合约启动指南

2020-09-27 DAOSquare 来源:区块链网络


作者:Daniel Hwang

翻译机构:BabelTrans


简介


CosmWasm是Confio新的智能合约平台,它通过即插即用模块提供了一个WebAssembly (WASM)运行环境,它能轻松融合到现有的Cosmos SDK 区块链中。CosmWasm 使得用户能够上传他们自己的基于WASM的智能合约,且这个智能合约能够用多种语言编写,并允许在区块链本地模块提供的功能的同时使用自定义逻辑。

Terra的协议使得稳定币的发行与世界不同的货币相锚定,它建立在Cosmos SDK上,并与CosmWasm兼容。在Terra的下一次主网升级中,CosmWasm将通过新的WASM模块进行集成,用户将能够编写自己的智能合约,利用Terra区块链强大的基元构建下一代的金融dapp。

在这篇文章中,我们将回顾Terra Station中的新的合约部分,在这里用户可以上传、查询智能合约并与其交互。但在开始说新的智能合约功能之前,先让我们看看什么是Terra Station。


Terra Station


Terra Station是一个钱包应用程序,它让用户能够与多个Terra网络连接和交互。尽管它主要用于与主网Columbus交互,它也可以用于访问各种测试网,包括一个名为LocalTerra(稍后介绍)的本地测试网。您可以通过网络访问Terra Station,但我们建议将其应用程序安装在本地,然后再处理智能合约。您可以通过以下链接安装Terra Station:WindowsmacOS在你打开Terra Station后,您将看到不同的功能被放在了不同的区域,您可以通过单击左侧栏上的各种菜单进行引导操作。请确保将网络设置为最新的Tequila测试网或LocalTerra(稍后介绍),以便能顺利使用本教程。

仪表盘


仪表板会显示有关Luna当前状态的一些常规信息。您可以更改图表的设置来选择看累积式还是周期式的数据。

钱包


钱包页面显示用户的各种代币余额(Luna和Terra稳定币),用户也可以向其他帐户发送资金。如果页面显示您的Tequila测试网中没有任何余额,您可以随时前往Terra水龙头并获得更多您想要的代币。更多关于水龙头的信息将会在下面的部分中阐述。

历史记录


这是用户交易的历史记录,这里详细记录了从钱包发出的所有交易。默认情况下,所有交易都是可见的。若想只查看特定类型的交易,如“发送”或“接收”,可以通过选择交易历史记录上方的类别(全部、发送、接收、质押挖矿、市场、管理)进行筛选。

质押挖矿
即使在Terra 测试网上,您仍然可以通过委托给测试网验证者来进行测试网挖矿。只需点击“验证者(validator)“,你就可以委托或取消委托你的Luna测试网代币,你也可以取出你当前的奖励。

市场


Terra区块链支持多种面值的稳定币,也支持本地质押资产和治理代币Luna。用户可以在市场(market)界面进行不同稳定间的交易,也可根据预言机报告的当前市场交易汇率交易Luna。市场页面还显示了有关Luna历史汇率的许多详细信息。您可以将时间设置调整为1分钟到一天之间的值,以获得所需的价格图表。该页面也可以查看各种Terra稳定币到Luna的汇率。在页面底部,您可以选择并输入要交换的代币数量,系统会根据当前汇率自动计算出预计的回报值。

治理

链上治理是权益证明网络的一个重要特征。它让Terra区块链的任何利益相关者能通过创建提案并让社区其他成员来投票去更改区块链参数。Terra Station通过一个简单的界面让用户可以建立新提案以及对治理提案进行投票。

合约

请注意,为了在Terra Station上使用“合约”功能,您需要在Tequila测试网或LocalTerra网络上操作。您可以在Terra Station的左下角附近调整网络设置。Terra Station为用户连接命令行提供了一个友好的替代选择,使得用户可以通过图形界面处理智能合约。

上传/创建合约


在Terra上,上传智能合约的代码和示例化(创建)合约是有区别的。与以太坊或其他智能合约平台不同的是,我们的这两个步骤是分开的。上传智能合约的代码会将其保存到区块链上,并返回代码ID,这可用于创建多个智能合约。这促进了高效代码的重复使用同时也增加了使用信心,因为在大多数用例中只需要一小部分经过审核与审计的原型合约。例如,人们可以通过引用CW20(ERC20模拟)的现有代码ID来轻松地发行自己的通证,而不需要编写自己的代码去执行。用户可以通过点击Terra Station“合约”菜单右上角的[Upload]按钮上传自己的智能合约代码。若要上传代码,你需要提供一些必需的信息。最重要的是包含了智能合约逻辑的已编译的WASM字节码。您还可以添加其他信息,如名称和描述,以及链接到有智能合约源代码的公共GitHub存储库的URL地址。此元数据将与合同代码一起被记录下来,并让其他用户可以了解你的智能合约的功能和使用方法。智能合约上传成功后,您将收到与新注册代码对应的代码ID。 一旦你有了代码ID,你就可以实例化合约。这会创造出一个合约,并将一个新Terra账户地址匹配到这个合约上。正如下图所示,代码ID是61。 每个智能合约的部署需要传递一个发起信息(InitMsg),该消息是由JSON编码。InitMsg的预期格式能从合约代码的模式中了解到。Terra Station不会知道智能合约的源代码,所以它无从提供更深层次的模式验证。你需要再三确认合约源代码来确保InitMsg的格式正确,否则就可能导致你的合约从一个预期之外的初始状态开始。这个“币(Coins)”的输入值允许用户可以提供给合约其初始资金。这是可选的,并且只有在智能合约需要有资金来确保其运行的情况下才是必要的。你可以从你现有账户的任何类型代币余额中转入,包括Luna和所有Terra的稳定币。 一旦点击【下一步】([NEXT])按钮,你就会被引导到“确认(Confirm )”页面,在这里你可以为创建该合约设置交易费用——输入密码来最终确认交易。交易完成后,你会从“合约(Contracts)”页面的列表中找到你创建的合约,从而开始与之交互。
点击列表中的任何合约地址,用户会被引导至Terra的官方区块链浏览器Terra Finder。

交互一旦智能合约创建成功,它就会出现在区块链上并且对用户的交互做出反应。通过点击Terra Station上智能合约地址旁的【交互】 [Interact] 按钮,你可以调用在合约里设置的函数。这里展现了一个模态框,这里你可以设置处理消息(HandleMsg)和/或者一些智能合约要求的代币。一条HandleMsg是一条智能合约可以解析和传递相应逻辑路径,并让用户可以规定待执行的函数功能以及命令的JSON消息。就如InitMsg,该HandleMsg也有智能合约代码规定的预期格式和模式。请就相关智能合约文章细节和源代码来进行参考,以便更好了解如何正确创建HandleMsg,从而让智能合约以预期的方式正确运行。一旦你填完所需输入,Terra Station就会将交互请求转化成一则执行合约消息(MsgExecuteContract),并产生你需要签名的交易再传播该则消息。
查询你可以点击【查询】[Query]按钮来查询智能合约的相关功能,该按钮在【交互】 [Interact] 旁边。与交互(执行)一个智能合约不同,查询智能合约不需要涉及到改变合约的状态,由此可以在无需广播和交易签名情况下进行。智能合约查询是个只读操作,允许用户运行相关函数从而从合约获取相关数据。你需要设定查询信息(QueryMsg),这是一条可以让智能合约解析并执行当前状态下查询功能的JSON消息。QuertMsg在智能合约代码中也有相应的格式要求,请参考智能合约文件了解。为了更好地了解Terra上的智能合约,请访问官方Terra文档,这里你可以找到更深入更全面的开发者指南来开始编写Terra上的智能合约。
本地Terra网络(LocalTerra)
尽管水龙头允许Tequila-0004测试网的用户通过获取测试网代币来玩,该方法在本地Terra网络上则不是必须的。本地Terra网络是一个完整的Terra测试网和由Docker和简单的docker组成文件集装和编排的生态系统,是为了让智能合约开发者在搬到测试环境网或主网之前,能更好地在沙盒环境下测试他们的合约。为了从Terra Station链接到本地Terra网络,你必须首先根据本地Terra网络Github文件夹中的教程将其设置好。你可以对Terra Station进行设置从而能通过点击应用的左下角来使用本地Terra网络。本地Terra网络自带10个预配置的余额账户。当你选中本地Terra网络,你可以从用户名称旁的下拉菜单中来选择想使用的账户。以下TCP插口端口值是默认且固定的。请确保没有其它应用在使用它们,因为这可能会影响你使用本地Terra 网络。Terrad RPC: 26657 (i.e. terracli <cmd> —node tcp://localhost:26657)FCD: 3060 (http://localhost:3060/swagger/)LCD: 1316文章由Joe Lim, Paul Kim,和William Chen (Terra)贡献,文章涉及的超链接,请点击“阅读原文”查看。还是一样,欢迎加入我们的社区!

Terra 中国市场运营合作方:DAOSquare


—-

编译者/作者:DAOSquare

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...