Ethereumでスマートコントラクトで簡単なアプリケーションを試す その2

技術メモ

前回の続き。

Waiting for transaction to be mined…

がでたところまでやった。

ここで、contractの採掘ができるまでをまとめる。

まず、gethをubuntuで起動しておく

$ geth --datadir /root/ethereum/data --networkid 15 --rpc --rpcaddr "172.17.0.2" --rpcport 8545 --rpccorsdomain "*" --rpcapi "net,eth,web3,personal" --testnet console

Browser-solidityをmac上で起動

$ npm start 

ブラウザでBrowser-solidityにアクセス

http://127.0.0.1:8080/

contractタブで Web3 Provider を選択

Contract:CounterMaster の Createボタンを押すと”callback contain no result Error: authentication needed: password or unlock”がでてくるので

ubuntu上のgethでunlockする。

> personal.unlockAccount(eth.accounts[0], "testuser1")
true
> personal.unlockAccount(eth.accounts[1], "testuser2")
true

そのあとにもう1度createボタンをおすと”Waiting for transaction to be mined…”が表示される

その後以下をgethのconsole上で入力

var contract_countermasterContract = web3.eth.contract([{"constant":true,"inputs":[],"name":"getCounterAddressList","outputs":[{"name":"counterAddressList","type":"address[]"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"}],"name":"addCounter","outputs":[],"payable":false,"type":"function"}]);
var contract_countermaster = contract_countermasterContract.new(
   {
     from: web3.eth.accounts[0], 
     data: '0x6060604052341561000c57fe5b5b6104c78061001c6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631395a7c61461004657806349d824c1146100bb575bfe5b341561004e57fe5b6100566100df565b60405180806020018281038252838181518152602001915080519060200190602002808383600083146100a8575b8051825260208311156100a857602082019150602081019050602083039250610084565b5050509050019250505060405180910390f35b34156100c357fe5b6100dd600480803560001916906020019091905050610174565b005b6100e761028d565b600180548060200260200160405190810160405280929190818152602001828054801561016957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161011f575b505050505090505b90565b60008161017f6102a1565b808260001916600019168152602001915050604051809103906000f08015156101a457fe5b9050600180548060010182816101ba91906102b1565b916000526020600020900160005b83909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080600060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b602060405190810160405280600081525090565b6040516101998061030383390190565b8154818355818115116102d8578183600052602060002091820191016102d791906102dd565b5b505050565b6102ff91905b808211156102fb5760008160009055506001016102e3565b5090565b9056006060604052341561000c57fe5b604051602080610199833981016040528080519060200190919050505b80600081600019169055505b505b610153806100466000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630bd8599e14610051578063892b956a146100635780638c6e606314610091575bfe5b341561005957fe5b6100616100c3565b005b341561006b57fe5b610073610101565b60405180826000191660001916815260200191505060405180910390f35b341561009957fe5b6100a161010c565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6001600081819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff160217905550505b565b600060005490505b90565b6000600160009054906101000a900463ffffffff1690505b905600a165627a7a72305820370416a927a44815749ffbbdabebe740700bcfbd74b4cf94c49a090e7ee63c950029a165627a7a723058205f4f759d46e7b5348671cae6c86f6afde471fceeb454f744728732d5d932f2af0029', 
     gas: '4700000'
   }, function (e, contract){
    console.log(e, contract);
    if (typeof contract.address !== 'undefined') {
         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
    }
 })

INFO [05-02|14:47:28] Submitted contract creation              fullhash=0x7114ff4a471dd798ab940417734f34b47493329da4a0fe8fa0963cc20d70370b contract=0xcab8d2f950ab9a6d64657822d01de72ba1701cb9

上記ででたcontractを Browser-solidityのAt Addressボタンを押して、そのcontract hash をテキストボックスに入れOK押す。

そのあと、addCounterに任意文字を入れて、クリックして Waiting for transaction to be mined… が出る。

その後、geth上で miner.start()を押すと・・・

> miner.start()
INFO [05-02|14:47:50] Updated mining threads                   threads=0
INFO [05-02|14:47:50] Starting mining operation
null
> INFO [05-02|14:47:50] Commit new mining work                   number=199 txs=2 uncles=0 elapsed=1.478ms
INFO [05-02|14:48:14] Successfully sealed new block            number=199 hash=f24e9b…e4768d
INFO [05-02|14:48:14] 🔨 mined potential block                  number=199 hash=f24e9b…e4768d
INFO [05-02|14:48:14] Commit new mining work                   number=200 txs=0 uncles=0 elapsed=641.573µs
null [object Object]
Contract mined! address: 0xcab8d2f950ab9a6d64657822d01de72ba1701cb9 transactionHash: 0x7114ff4a471dd798ab940417734f34b47493329da4a0fe8fa0963cc20d70370b
INFO [05-02|14:48:14] Submitted transaction                    fullhash=0xce04c1602688b42d00c06e7aa831cd108208ef1cdaef1a86765d6fc98404512c recipient=0xcab8d2f950ab9a6d64657822d01de72ba1701cb9

こんな感じで contract が minedされた!
これ手順1つでも間違えると contract が minedされないので、ここをもう少しふかぼっていく。

Sponsored Link

ビットコイン(Bitcoin)、イーサリアム(Ethereum)、リップル(Ripple)、ネム(NEM)などの仮想通貨を買うならZaifがおすすめです。

特に国内でETHを購入するなら、アルトコインでも板取引に対応しているZaif(ザイフ)が割安なのでよいですよ。

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


Ethereum(イーサリアム)
Error: The contract code couldn’t be stored, please check your gas amount.

ALISのICOソースのzeppelinバージョンを1.2から1.8にあげようとしたときにはまったエ …

Dapps
日本の都道府県を所有できるDApps & ERC721 のサンプルを公開してみました

最近、Ethereum上でカードなどを所有できるdAppsが流行っているので、試しに日本の都道府県を …

Ethereum(イーサリアム)
TX doesn’t have the correct nonce – Metamask

EthereumのdAppsを作ろうとしていてはまったのでメモ。 Metamaskを使用して支払いを …