{"id":6064,"date":"2018-09-09T03:57:03","date_gmt":"2018-09-08T18:57:03","guid":{"rendered":"http:\/\/blog.jansnap.com\/?p=6064"},"modified":"2021-12-17T23:31:10","modified_gmt":"2021-12-17T14:31:10","slug":"rootstockrsk%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%e3%82%92%e3%82%84%e3%81%a3%e3%81%9f%e6%99%82%e3%81%ae%e3%83%a1%e3%83%a2","status":"publish","type":"post","link":"https:\/\/blog.jansnap.com\/?p=6064","title":{"rendered":"Rootstock(RSK)\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u3084\u3063\u305f\u6642\u306e\u30e1\u30e2"},"content":{"rendered":"\n<ul class=\"wp-block-list\"><li>\n<a href=\"https:\/\/github.com\/rsksmart\/tutorials\/wiki\/Developing-Smart-Contracts-in-RSK\" rel=\"nofollow noopener\" target=\"_blank\">Rootstock(RSK)\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb<\/a> \u3092\u3084\u3063\u305f\u6642\u306e\u30e1\u30e2\u3067\u3059\u3002\n\n<ul>\n<li>\n<a href=\"https:\/\/www.rsk.co\/\" rel=\"nofollow noopener\" target=\"_blank\">Rootstock(RSK)<\/a>\u306f\u3001Bitcoin\u4e0a\u3067\u30b9\u30de\u30fc\u30c8\u30b3\u30f3\u30c8\u30e9\u30af\u30c8(Solidity)\u304c\u52d5\u304f\u3088\u3046\u306b\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3059\u3002<\/li>\n<\/ul>\n<\/li><li>\u57fa\u672c\u30b3\u30d4\u30da\u3067\u3059\u304c\u3001\u7d30\u304b\u3044\u90e8\u5206\u3067\u8ffd\u52a0\u624b\u9806\u304c\u5fc5\u8981\u3060\u3063\u305f\u306e\u3067\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002<\/li><li>\u74b0\u5883\u306fMacOS High Sierra\u3067\u3059\u3002<\/li><li>Node.js\u3084npm\u306f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u3067\u3059\u3002<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89\"><\/span>\n\u74b0\u5883\u69cb\u7bc9<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Truffle%E3%83%88%E3%83%AA%E3%83%A5%E3%83%95_%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\"><\/span>\nTruffle(\u30c8\u30ea\u30e5\u30d5) \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo npm install -g truffle<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ganache%E3%82%AC%E3%83%8A%E3%83%83%E3%82%B7%E3%83%A5_%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\"><\/span>\nganache(\u30ac\u30ca\u30c3\u30b7\u30e5) \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>\u958b\u767a\u7528\u306e\u30c1\u30a7\u30fc\u30f3\u3092\u4f5c\u6210\u3057\u305f\u308a\u3001\u30d6\u30ed\u30c3\u30af\u306e\u4e2d\u8eab\u3092\u898b\u305f\u308a\u3059\u308b\u30c4\u30fc\u30eb\u3002<\/li><li>\n<a href=\"https:\/\/truffleframework.com\/ganache\" rel=\"nofollow noopener\" target=\"_blank\">Truffle suite\u5185\u306eganache\u306e\u30da\u30fc\u30b8<\/a>\u304b\u3089\u3001Mac\u7528\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3002<\/li><li>\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u7248\u3082\u5165\u308c\u305f\n<code>\n$ sudo npm install -g ganache-cli\n<\/code>\n<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"0_%E7%94%A8%E8%AA%9E%E3%81%AE%E8%AA%AC%E6%98%8E\"><\/span>\n0:\u7528\u8a9e\u306e\u8aac\u660e<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><p><a href=\"https:\/\/github.com\/rsksmart\/tutorials\/wiki\/Module-0-%E2%80%93-A-little-about-DApps-and-Smart-Contracts-(10-minutes)\" rel=\"nofollow noopener\" target=\"_blank\">Module 0 \u2013 A little about DApps and Smart Contracts (10 minutes)<\/a>\u3092\u8aad\u307f\u307e\u3059\u3002<\/p><\/li><li><p>\u30b9\u30de\u30fc\u30c8\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3084\u3001DApps(=\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9+\u30b3\u30f3\u30c8\u30e9\u30af\u30c8)\u3001\u30a2\u30c9\u30ec\u30b9\u3068\u306f\u4f55\u304b\u3068\u3044\u3063\u305f\u8aac\u660e\u304c\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u3002<\/p><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E4%BE%8B\"><\/span>\n1:\u30b7\u30f3\u30d7\u30eb\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u4f8b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><p><a href=\"https:\/\/github.com\/rsksmart\/tutorials\/wiki\/Module-2-%E2%80%93-Deploying-a-smart-contract-on-development-environment-(30-minutes)\" rel=\"nofollow noopener\" target=\"_blank\">Module 1 \u2013 Saying hello to the smart world (10 minutes)<\/a>\u3092\u8aad\u307f\u307e\u3059\u3002<\/p><\/li><li>\n<p>\u30b7\u30f3\u30d7\u30eb\u306a\u30b9\u30de\u30fc\u30c8\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u4f8b\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n<ul>\n<li>\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3001\u5909\u6570\u3078\u306eget\u3001set\u3092\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0<\/li>\n<\/ul>\n<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%B8%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4\"><\/span>\n2:\u958b\u767a\u74b0\u5883\u3078\u306e\u30c7\u30d7\u30ed\u30a4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><p><a href=\"https:\/\/github.com\/rsksmart\/tutorials\/wiki\/Module-2-%E2%80%93-Deploying-a-smart-contract-on-development-environment-(30-minutes)\" rel=\"nofollow noopener\" target=\"_blank\">Module 2 \u2013 Deploying a smart contract on development environment (30 minutes)<\/a><\/p><\/li><li><p>5\u3064\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u5225\u308c\u3066\u3044\u307e\u3059\u3002<\/p><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2-1_Truffle%E3%81%AE%E7%B4%B9%E4%BB%8B%E3%83%AA%E3%83%B3%E3%82%AF\"><\/span>\n2-1:Truffle\u306e\u7d39\u4ecb(\u30ea\u30f3\u30af)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Truffle\u306f\u3001Solidity\u306e\u958b\u767a\u30fb\u30c6\u30b9\u30c8\u304c\u3067\u304d\u308b\u74b0\u5883\u3002<\/li><li>\u30b5\u30f3\u30d7\u30eb\u7528\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ mkdir simple-storage\n$ cd simple-storage\n$ truffle init<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2-2_%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A7%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99\"><\/span>\n2-2:\u30ed\u30fc\u30ab\u30eb\u3067\u30d6\u30ed\u30c3\u30af\u30c1\u30a7\u30fc\u30f3\u3092\u52d5\u304b\u3059<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u81ea\u52d5\u306710\u500b\u4f5c\u3089\u308c\u3066\u3001truffle\u306e\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304c\u8868\u793a\u3055\u308c\u308b<code>truffle(develop)><\/code> <\/li><li>\u30bf\u30fc\u30df\u30ca\u30eb\u3092\u9589\u3058\u308b\u3068\u74b0\u5883\u304c\u6d88\u3048\u3066\u3057\u307e\u3046\u306e\u3067\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u306f\u958b\u3044\u305f\u307e\u307e\u306b\u3059\u308b\u3002<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle develop <\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2-3_scaffold%E3%81%A7%E6%96%B0%E3%81%97%E3%81%84%E3%82%B3%E3%83%B3%E3%83%88%E3%83%A9%E3%82%AF%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90\"><\/span>\n2-3: scaffold\u3067\u65b0\u3057\u3044\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3092\u4f5c\u6210<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(develop)> create contract SimpleStorage<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><p>(contracts\u30d5\u30a9\u30eb\u30c0\u306b\u3001\u300cSimpleStorage.sol\u300d\u3068\u300cMigrations.sol\u300d\u304c\u4f5c\u6210\u3055\u308c\u308b\u3002SimpleStorage.sol\u306f\u3001\u7a7a\u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u5165\u3063\u3066\u3044\u308b\u3060\u3051\u306e\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3002)<\/p><\/li><li><p>\u300cModule 1 \u2013 Saying hello to the smart world (10 minutes)\u300d\u306b\u3042\u308b\u4f8b\u3092\u3001SimpleStorage.sol\u306b\u30b3\u30d4\u30da\u3059\u308b\u3002<\/p><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2-4_%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E4%B8%8A%E3%81%AB%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4\"><\/span>\n2-4:(\u30ed\u30fc\u30ab\u30eb\u306e)\u30d6\u30ed\u30c3\u30af\u30c1\u30a7\u30fc\u30f3\u4e0a\u306b\u30c7\u30d7\u30ed\u30a4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30c7\u30d7\u30ed\u30a4\u7528\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210\n\n<ul>\n<li>\u3059\u3067\u306bmigrations\u30d5\u30a9\u30eb\u30c0\u306b\u300c1_initial_migration.js\u300d\u3068\u3044\u3046\u30c7\u30d7\u30ed\u30a4\u7528\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u3042\u308b\u3002<\/li>\n<li>migrations\u30d5\u30a9\u30eb\u30c0\u5185\u306b\u3001\u65b0\u305f\u306b\u300c2_simple_storage.js\u300d\u3092\u4f5c\u3063\u3066\u3001\u4ee5\u4e0b\u3092\u8a18\u8ff0\u3059\u308b\u3002<\/li>\n<\/ul>\n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">var SimpleStorage = artifacts.require(\".\/SimpleStorage.sol\");\n\nmodule.exports = function(deployer) {\n  deployer.deploy(SimpleStorage);\n};<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30b3\u30f3\u30d1\u30a4\u30eb\n\n<ul>\n<li>contracts\u30d5\u30a9\u30eb\u30c0\u306e\u5168\u3066\u306e.sol\u30d5\u30a1\u30a4\u30eb\u304c\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u308b<\/li>\n<li>build\u30d5\u30a9\u30eb\u30c0\u306b\u3001\u30b3\u30f3\u30d1\u30a4\u30eb\u6e08\u307f\u30d0\u30a4\u30c8\u30b3\u30fc\u30c9\u3092\u542b\u3080json\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u308b<\/li>\n<li>\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304d\u63db\u3048\u3066\u30ea\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u5834\u5408\u306f\u3001build\u30d5\u30a9\u30eb\u30c0\u3092\u4e38\u3054\u3068\u6d88\u3059?(\u30d5\u30a1\u30a4\u30eb\u306e\u65e5\u4ed8\u3092\u898b\u3066\u81ea\u52d5\u7684\u306b\u7f6e\u304d\u63db\u3048\u3066\u304f\u308c\u305f\u308a \u3057\u306a\u3044\u307d\u3044)<\/li>\n<\/ul>\n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(develop)> compile<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30c7\u30d7\u30ed\u30a4(\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3)<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(develop)> migrate<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\u300cSaving successful migration to network\u2026\u300d\u3068\u3001\u30a2\u30c9\u30ec\u30b9\u3068\u3001\u300cSaving artifacts\u2026\u300d\u304c\u51fa\u308c\u3070\u6210\u529f\u3002<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2-5_%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%97%E3%81%9F%E3%82%B3%E3%83%B3%E3%83%88%E3%83%A9%E3%82%AF%E3%83%88%E3%82%92%E4%BD%BF%E3%81%86\"><\/span>\n2-5:\u30c7\u30d7\u30ed\u30a4\u3057\u305f\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3092\u4f7f\u3046<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Truffle\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u5bfe\u8a71\u7684\u306b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u8a66\u3059\u3002<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1SimpleStorage%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E5%8C%96\"><\/span>\n(1)SimpleStorage\u3092\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>\u5229\u7528\u3067\u304d\u308b\u95a2\u6570\u3084\u5909\u6570\u304c\u8868\u793a\u3055\u308c\u308b(\u6700\u5f8c\u306e\u65b9\u306b\u3001\u81ea\u5206\u3067\u66f8\u3044\u305fget\u3084set\u3082\u8868\u793a\u3055\u308c\u308b)<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(develop)> var simpleStorage\ntruffle(develop)> SimpleStorage.deployed().then(instance => simpleStorage = instance)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2get%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%A6%E3%80%81%E5%A4%89%E6%95%B0%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%82%92%E5%BE%97%E3%82%8B\"><\/span>\n(2)get()\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u3066\u3001\u5909\u6570\u306e\u4e2d\u8eab\u3092\u5f97\u308b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(development)> simpleStorage.get()<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>BigNumber\u578b\u3067\u4e2d\u8eab\u304c\u308f\u304b\u3089\u306a\u3044\u306e\u3067\u3001bn.toNumber()\u3067\u5909\u63db\u3057\u3066\u8868\u793a\u3059\u308b<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(develop)> simpleStorage.get().then(bn => bn.toNumber())<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\u8aad\u307f\u51fa\u3057\u306e\u307f(\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3092\u5909\u66f4\u3057\u306a\u3044)\u306e\u3067\u3001gas\u4ee3\u306f\u304b\u304b\u3089\u306a\u3044<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3set%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%A6%E3%80%81%E5%A4%89%E6%95%B0%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%82%92%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%8B\"><\/span>\n(3)set()\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u3066\u3001\u5909\u6570\u306e\u4e2d\u8eab\u3092\u66f8\u304d\u63db\u3048\u308b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(develop)> simpleStorage.set(10)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>tx\u3084receipt\u304c\u8868\u793a\u3055\u308c\u308b\u3002<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%81%9F%E5%A4%89%E6%95%B0%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%82%92get%E3%81%A7%E5%86%8D%E7%A2%BA%E8%AA%8D\"><\/span>\n(4)\u66f8\u304d\u63db\u3048\u305f\u5909\u6570\u306e\u4e2d\u8eab\u3092get()\u3067\u518d\u78ba\u8a8d<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30ab\u30fc\u30bd\u30eb\u306e\u4e0a\u3067\u5c65\u6b74\u304c\u305f\u3069\u308c\u308b\u3002<code>simpleStorage.set(10)<\/code>\u3067\u8868\u793a\u3057\u3066\u300110\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_RSK_%E3%83%86%E3%82%B9%E3%83%88%E3%83%8D%E3%83%83%E3%83%88%E3%81%B8%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4\"><\/span>\n3:RSK \u30c6\u30b9\u30c8\u30cd\u30c3\u30c8\u3078\u306e\u30c7\u30d7\u30ed\u30a4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><p><a href=\"https:\/\/github.com\/rsksmart\/tutorials\/wiki\/Module-3-%E2%80%93-Smart-contract-on-RSK-(40-minutes)\" rel=\"nofollow noopener\" target=\"_blank\">Module 3 \u2013 Smart contract on RSK (40 minutes)<\/a><\/p><\/li><li><p>\u7121\u6599\u306e\u30d1\u30d6\u30ea\u30c3\u30af\u30c1\u30a7\u30fc\u30f3\u3002<\/p><\/li><li><p>BTC\u3067\u306f\u306a\u304f\u3001SBTC\u3068\u3044\u3046\u30c6\u30b9\u30c8\u7528\u901a\u8ca8\u3092\u4f7f\u3046\u3002<\/p><\/li><li><p>\u30d1\u30d6\u30ea\u30c3\u30af\u30ce\u30fc\u30c9\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3002(\u30ed\u30fc\u30ab\u30eb\u306b\u30ce\u30fc\u30c9\u3092\u7acb\u3066\u308b\u65b9\u6cd5\u3082\u3042\u308b)<\/p><\/li><li><p>4\u3064\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u5225\u308c\u3066\u3044\u308b<\/p><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3-1_RSK%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B\"><\/span>\n3-1:RSK\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u53d6\u5f97\u3059\u308b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u3001\u30a6\u30a9\u30fc\u30ec\u30c3\u30c8\u4e0a\u306e\u8cc7\u7523\u3092\u7ba1\u7406\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u3002<\/li><li>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001BIP-39\u306b\u6cbf\u3063\u305f12\u8a9e\u306e\u30cb\u30fc\u30e2\u30cb\u30c3\u30af\u30fb\u30d5\u30ec\u30fc\u30ba\u3092\u4f7f\u7528\u3059\u308b\u3002<\/li><li>\n<a href=\"https:\/\/iancoleman.io\/bip39\/\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/iancoleman.io\/bip39\/<\/a>\u3067\u300112\u8a9e\u306e\u82f1\u5358\u8a9e\u3092\u751f\u6210\u3057\u3066\u3001\u30e1\u30e2\u3057\u3066\u304a\u304f\u3002<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3-2_Truffle%E3%82%92RSK%E3%81%AE%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF%E3%83%8E%E3%83%BC%E3%83%89%E3%83%86%E3%82%B9%E3%83%88%E3%83%8D%E3%83%83%E3%83%88%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B\"><\/span>\n3-2:Truffle\u3092RSK\u306e\u30d1\u30d6\u30ea\u30c3\u30af\u30ce\u30fc\u30c9(\u30c6\u30b9\u30c8\u30cd\u30c3\u30c8)\u306b\u63a5\u7d9a\u3059\u308b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>\n<a href=\"https:\/\/github.com\/trufflesuite\/truffle-hdwallet-provider\" rel=\"nofollow noopener\" target=\"_blank\">truffle-hdwallet-provider<\/a>\u3092\u4f7f\u3046\n\n<ul>\n<li>\u5916\u90e8\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u63a5\u7d9a\u3059\u308b\u304c\u3001\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u30ed\u30fc\u30ab\u30eb\u306b\u3042\u308b\u3082\u306e\u3092\u4f7f\u3046(?)<\/li>\n<li>truffle-hdwallet-provider\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/li>\n<\/ul>\n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo npm install -g truffle-hdwallet-provider<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d5\u30a9\u30eb\u30c0\u76f4\u4e0b\u306b\u3042\u308b\u300ctruffle.js\u300d\u3092\u3001\u4ee5\u4e0b\u306e\u5185\u5bb9\u306b\u66f8\u304d\u63db\u3048\u308b\u3002<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">var HDWalletProvider = require('truffle-hdwallet-provider')\n\nvar mnemonic = '\u3053\u3053\u306b\u30e1\u30e2\u3057\u305f12\u8a9e\u306e\u30d5\u30ec\u30fc\u30ba\u3092\u5165\u308c\u308b'\nvar publicNode = 'https:\/\/public-node.testnet.rsk.co:443'\n\nmodule.exports = {\n  networks: {\n    rsk: {\n      provider: () =>\n        new HDWalletProvider(mnemonic, publicNode),\n      network_id: '*',\n      gas: 2500000,\n      gasPrice: 183000\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\u65b0\u3057\u3044\u30b3\u30f3\u30bd\u30fc\u30eb\u3092\u958b\u304d\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067RSK\u306e\u30d1\u30d6\u30ea\u30c3\u30af\u30ce\u30fc\u30c9(\u30c6\u30b9\u30c8\u30cd\u30c3\u30c8)\u306b\u63a5\u7d9a\u3059\u308b\n\n<ul>\n<li>truffle-hdwallet-provider\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u3046\u307e\u304f\u3044\u3063\u3066\u3044\u306a\u3044\u3068\u3001<code>Error: Cannot find module 'truffle-hdwallet-provider'<\/code>\u304c\u51fa\u308b\u3002<\/li>\n<\/ul>\n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ cd mywork\/simple-storage\/\n$ truffle console --network rsk<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Truffle\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u30d6\u30ed\u30c3\u30af\u756a\u53f7\u3092\u8868\u793a\u3057\u3066\u3001\u63a5\u7d9a\u78ba\u8a8d\u3059\u308b\n\n<ul>\n<li>\u300cweb3.eth.blockNumber\u300d\u3092\u4f7f\u3046\u65b9\u6cd5\u3082\u3042\u308b\u304c\u3001\u30ce\u30fc\u30c9\u3068\u306e\u3084\u308a\u53d6\u308a\u306f\u975e\u540c\u671f\u3067\u884c\u3046\u3079\u304d\u306a\u306e\u3067\u300cweb3.eth.getBlockNumber\u300d\u3092\u4f7f\u3046\u3068\u306e\u3053\u3068\u3002<\/li>\n<\/ul>\n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(rsk)> web3.eth.getBlockNumber((err, res) => console.log(res))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3-3_%E8%87%AA%E5%88%86%E3%81%AERSK%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AE%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%80%81%E3%83%86%E3%82%B9%E3%83%88%E7%94%A8%E3%81%AESBTC%E3%82%92%E3%82%82%E3%82%89%E3%81%86\"><\/span>\n3-3:\u81ea\u5206\u306eRSK\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u8abf\u3079\u3066\u3001\u30c6\u30b9\u30c8\u7528\u306eSBTC\u3092\u3082\u3089\u3046<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u3001\u6700\u521d\u306b\u8868\u793a\u3055\u308c\u308b\u300c0x273501b\u2026\u300d\u306e\u3088\u3046\u306a\u30a2\u30c9\u30ec\u30b9\u3092\u30e1\u30e2\u3002<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(rsk)> web3.currentProvider.wallets<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>\n<a href=\"https:\/\/faucet.testnet.rsk.co\" rel=\"nofollow noopener\" target=\"_blank\">RSK Faucet\u306e\u30da\u30fc\u30b8<\/a>\u3092\u958b\u3044\u3066\u3001\u30e1\u30e2\u3057\u305f\u30a2\u30c9\u30ec\u30b9\u3068\u3001CAPCHA\u3092\u5165\u308c\u3066\u3001\u300cGet Smart-BTCs!\u300d\u3092\u30af\u30ea\u30c3\u30af\u3002<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">RSK TESTNET FAUCET\nFaucet balance is 148.531671301698798998 SBTC\nSuccessfully sent some SBTCs to that address<\/code><\/pre>\n\n\n\n<p>\u306e\u3088\u3046\u306b\u3001SBTC\u304c\u3082\u3089\u3048\u308b\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u6b8b\u9ad8\u3092\u78ba\u8a8d\u3002(1000000000000000\u5165\u3063\u3066\u3044\u308b\u306f\u305a)<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(rsk)> var account = Object.keys(web3.currentProvider.wallets)[0]\n\ntruffle(rsk)> web3.eth.getBalance(account, (err, res) => console.log(res.toNumber()))<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3-4_%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%97%E3%81%A6%E3%80%81%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B\"><\/span>\n3-4:\u30c7\u30d7\u30ed\u30a4\u3057\u3066\u3001\u547c\u3073\u51fa\u3057\u3066\u307f\u308b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u3001\u30c7\u30d7\u30ed\u30a4\u3002(\u2013reset\u3067\u3001\u65e2\u306b\u30c7\u30d7\u30ed\u30a4\u6e08\u307f\u3067\u3082\u518d\u5ea6(\u5225\u306a\u30a2\u30c9\u30ec\u30b9\u306b)\u30c7\u30d7\u30ed\u30a4\u3059\u308b)<\/li><li>\u5c11\u3057\u6642\u9593\u304c\u304b\u304b\u308b(1\u3064\u76ee\u306f2\u5206\u3050\u3089\u3044\u30012\u3064\u76ee\u306f5\u5206\u3050\u3089\u3044\u304b\u304b\u3063\u305f\uff09\u3002<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(rsk)> compile\ntruffle(rsk)> migrate --reset<\/code><\/pre>\n\n\n\n<p>\u7d50\u679c\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u30e1\u30e2\u3057\u3066\u3001\u4e0b\u8a18\u306e\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u3067\u898b\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">Using network 'rsk'.\n\nRunning migration: 1_initial_migration.js\n  Deploying Migrations...\n  ... 0xa1be864286268bc6f2c46a25c3eef189361d0612d96da922692e5b002d91fd71\n  Migrations: 0xfe0105962d0a0a89876722df3e7bb42ba58a8c6d\nSaving successful migration to network...\n  ... 0xb14625f546ed790276916b1caa731bd75c26cc101e61a7f944a06a9617a05198\nSaving artifacts...\nRunning migration: 2_simple_storage.js\n  Deploying SimpleStorage...\n  ... 0xfe7d337eddf6e6361e5db550a8986cbbf2ef5bce05900a131e7b3b005f09d2ba\n  SimpleStorage: 0xd93c15eed8bd9a8f97d34f958d820d6dd29e7b9e\nSaving successful migration to network...\n  ... 0x5eb9345adb23dea9a054194a3e80dedf436121b62debafc9e8d056965e43e0f3\nSaving artifacts...<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><p><a href=\"https:\/\/explorer.testnet.rsk.co\/\" rel=\"nofollow noopener\" target=\"_blank\">RSK Testnet explorer<\/a>\u3067\u3001\u300cSimpleStorage: 0xd93c15eed8bd9a8f97d34f958d820d6dd29e7b9e\u300d\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b<\/p><\/li><li><p>\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3001set()\u3067\u5909\u6570\u306b10\u3092\u5165\u308c\u3066(2\u5206\u307b\u3069\u5f85\u305f\u3055\u308c\u305f)\u3001get()\u3067\u78ba\u8a8d\u3002<\/p><\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">truffle(rsk)> var simpleStorage\ntruffle(rsk)> SimpleStorage.deployed().then(instance => simpleStorage = instance)\ntruffle(rsk)> simpleStorage.get()\ntruffle(rsk)> simpleStorage.get().then(bn => bn.toNumber())\n0\ntruffle(rsk)> simpleStorage.set(10)\n{ tx:\n   '0xa9e080660e7d17da0c67d5951ff5d095b6b9e047c5d4ea8f409e6f12639d9856',\n  receipt:\n   { transactionHash:\n      '0xa9e080660e7d17da0c67d5951ff5d095b6b9e047c5d4ea8f409e6f12639d9856',\n     transactionIndex: 0,\n     blockHash:\n      '0x5b7166b6036edfaee1e29762e3db9e3d3229df67daa03b3e9339fbe4ff363a99',\n     blockNumber: 803615,\n     cumulativeGasUsed: 41942,\n     gasUsed: 41942,\n     contractAddress: null,\n     logs: [],\n     from: '0x273501b56af124b22c3850aaeca413fe98301fdb',\n     to: '0xd93c15eed8bd9a8f97d34f958d820d6dd29e7b9e',\n     root: '0x01',\n     status: '0x01' },\n  logs: [] }\ntruffle(rsk)> simpleStorage.get().then(bn => bn.toNumber())\n10<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>RSK Testnet explorer\u3067\u3001transactionHash\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3059\u308b\u3068\u3001\n\u5b9f\u884c\u3055\u308c\u305f\u30d6\u30ed\u30c3\u30af\u756a\u53f7\u3084\u3001\u4f7f\u7528\u3055\u308c\u305fgas\u4ee3\u306a\u3069\u304c\u5206\u304b\u308b\u3002<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E9%96%A2%E9%80%A3%E3%81%97%E3%81%9D%E3%81%86%E3%81%AA%E3%83%9A%E3%83%BC%E3%82%B8\"><\/span>\n\u95a2\u9023\u3057\u305d\u3046\u306a\u30da\u30fc\u30b8<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><p><a href=\"https:\/\/qiita.com\/syrohei\/items\/5eb573b781caedde16a1\" id=\"reference-60bb95fd258219d8c1bc\">\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30afTruffle\u3067\u00d0app\u3092\u7206\u901f\u958b\u767a\u3059\u308b \u2460Tutorial<\/a><\/p><\/li><li><p><a href=\"https:\/\/qiita.com\/gaisho81\/items\/06c58d5eb24ae302f690\" id=\"reference-6e91d85c166b3b0cd9f9\">Truffle\u3092\u4f7f\u3063\u3066Ethereum\u3067\u30da\u30c3\u30c8\u30b7\u30e7\u30c3\u30d7\u30a2\u30d7\u30ea\u3092\u4f5c\u308b\u301c\u524d\u534a\uff1a\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u306e\u5b9f\u88c5\uff06\u30c6\u30b9\u30c8\u301c<\/a><\/p><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Rootstock(RSK)\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb \u3092\u3084\u3063\u305f\u6642\u306e\u30e1\u30e2\u3067\u3059\u3002<br \/>\nRootstock(RSK)\u306f\u3001Bitcoin\u4e0a\u3067\u30b9\u30de\u30fc\u30c8\u30b3\u30f3\u30c8\u30e9\u30af\u30c8(Solidity)\u304c\u52d5\u304f\u3088\u3046\u306b\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3059\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4230,4204,4231,4222,4226],"tags":[4228,4200,4229,4220,4224],"class_list":["post-6064","post","type-post","status-publish","format-standard","hentry","category-bitcoin","category-ethereum","category-rootstock","category-solidity","category-tutorial","tag-bitcoin","tag-ethereum","tag-rootstock","tag-solidity","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/posts\/6064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6064"}],"version-history":[{"count":2,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/posts\/6064\/revisions"}],"predecessor-version":[{"id":6297,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/posts\/6064\/revisions\/6297"}],"wp:attachment":[{"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6064"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6064"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}