LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > RSK上创建智能合约教程

RSK上创建智能合约教程

2019-12-10 RSK 来源:区块链网络

RSK测试网络是一个没有实际经济价值的网络,我们在这里可以免费获取RBTC(RSK的货币)。

在这个模块里,我们将会学习部署一个简单的存储合约到RSK测试网络上。

首先,我们需要一个已完成最新同步的节点。


·节点的作用是通过对区块链备份以及处理交易来支持该网络

·任何人都可以通过端点连接到RSK所提供的公共节点

·或者你可以在本地安装一个节点(https://github.com/rsksmart/rskj/wiki安装节点步骤)

这个教程,我们将使用连接在Truffle上的公共节点(Truffle是基于solidity语言的一套开发框架)。接下来的步骤是:

1.获取RSK账户

2.连接Truffle与RSK测试网络的公共节点

3.在RSK账户里获取资金

4.部署及交互

一.获取RSK账户


怎样定义账户?

-当你控制了一个钱包里的资金,你便拥有了一个账户。

-有多种类型的钱包以及多种不同的方式来控制钱包

-这个教程,我们需要掌控12个单词的助记码来打开账户(有兴趣的读者可以阅读:BIP-39https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki


为了创建我们的账户,我们将会使用这个网页端app :https://iancoleman.io/bip39/来学习。这并不是一个安全的创建私钥的方式,如果需要创建“真实”的钱包,需三思

在“创建任意助记码”一栏中,我们选择12个单词并创建。结果将会出现在BIP39助记码一栏中,你将会看到12个任意的单词,例如:“dietdiamond round potato tattoo vendor giantaccountwifeknow awesome polar“。这是我们的12个单词的助记码!

二.连接Truffle与RSK测试网络的公共节点

我们需要修改Truffle的配置来连接到RSK。我们将利用一个能使我们连接到任何网络但在本地解锁的供应商的服务,truffle-hdwallet-providerhttps://github.com/trufflesuite/truffle-hdwallet-provider)。

在你的Truffle项目中打开truffle.js文件并且复制以下:

varHDWalletProvider=require('truffle-hdwallet-provider')

varmnemonic='thing tuition ranch ... YOURMNEMONIC'

varpublicNode='https://public-node.testnet.rsk.co:443'

module.exports={

networks:{

rsk:{

provider:()=>

newHDWalletProvider(mnemonic, publicNode),

network_id:'*',

gas:2500000,

gasPrice:183000

}

}

}

以上代码是告诉Truffle去连接到RSK公共节点,控制你刚创建的账户。gasPrice是使用网络所需支付的费用,gas是一笔交易中我们所允许的最高gas值,这些数字是我们在RSK网络中使用的默认值。如果我们设置这些值错误,交易有可能不会被打包,或者浪费太多资金。

查看我们的连接,让我们打开一个Truffle控制台:

truffle console --network rsk
truffle(rsk)> web3.eth.getBlockNumber((err, res) => console.log(res))

为什么不是写web3.eth.blockNumber?当我们使用供应商的服务来连接到一个节点,我们必须非同步完成!

不要关闭控制台!我们将要在下面的步骤中继续使用。

三.在RSK账户里获取资金

我们的地址是什么?让我们将以下代码输入到控制台来看我们的助记码解锁了哪个地址:

truffle(rsk)> web3.currentProvider.wallets

使用上述设置,只有一个钱包可用。让我们保存它于控制器里的一个变量中。我们将会很快使用它。

truffle(rsk)> var account = Object.keys(web3.currentProvider.wallets)[0]

之前我们提过RSK测试网络是一个免费的网络。我们将会利用一个水龙头装置在这个网络中领取资金。水龙头通常是一个你可以输入你钱包地址的网站,然后它会自动发给你一些测试网络资金用来测试。让我们去RSK水龙头:

https://faucet.testnet.rsk.co.


输入我们之前在控制台保存的地址及验证码然后索取RBTC!

现在在控制台里查看余额:

truffle(rsk)> web3.eth.getBalance(account, (err, res) =>console.log(res.toNumber()))

四.部署及交互

我们将会使用在本地网络环境下部署合约的同样步骤,而这次因为在公共网络上发布,所以可能会缓慢一些。

truffle(rsk)> compile
truffle(rsk)> migrate --reset

resetflag restarts migrations, even if other contracts were already deployed

当合约被部署之后,我们可以像之前在私链中那样使用deployed()方法(详情请见github)。我们可以通过访问RSK 测试网络浏览器(https://explorer.testnet.rsk.co/)来查看合约的交互。所有的交互将会出现在浏览器中!

My contract was deployedhere.

—-

编译者/作者:RSK

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

LOADING...
LOADING...