1. oho

    Posted

    oho
Changes in title
+Ethereumノウハウ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,161 @@
+Ethereumについてのメモ
+
+##gethに接続
+```console
+$ geth --networkid "15" --nodiscover --datadir "~/eth_private_net" console 2>> ~/eth_private_net/geth_err.log
+```
+
+###バックグラウンド起動でgethに接続
+```console
+$ geth --networkid "15" --nodiscover --datadir "/home/ubuntu/eth_private_net" 2>> /home/ubuntu/eth_private_net/geth_err.log &
+```
+
+###既に起動しているgethプロンプトを開く
+```console
+$ geth --datadir "/home/ubuntu/eth_private_net" attach ipc:/home/ubuntu/eth_data/geth.ipc
+```
+
+##アカウント
+EOA(Externally Owned Account)とContact Accountの2種類がある
+
+###EOA
+任意に操作するユーザー用アカウント
+
+###Contact Account
+トランザクションに応じて処理が行われるアカウント。EOAによりContractの処理が呼ばれ、保持データが変わる。
+
+###アカウントの作成
+```
+> personal.newAccount("hogehoge1")
+```
+パスワードを指定。パスワードを忘れると復元する手段はない。
+
+###アカウント一覧
+```js
+> eth.accounts
+["0x95d0ab3bcb76b3a56d4cd0c5289cccdf972c3766", "0xc39e22c8907ef0982753f0d0ed47c9abd1c4679f"]`
+```
+
+###コインベース
+```js
+> eth.coinbase
+```
+1つ目のアカウント。マイニングで報酬を受取るアカウント。
+
+###採掘開始
+```js
+> miner.start()
+```
+
+###採掘中止
+```js
+> miner.stop()
+```
+
+###採掘状況の確認
+```js
+> eth.blockNumber
+118
+```
+採掘したブロック数が返される
+
+###採掘中かどうか
+```js
+> eth.mining
+true
+```
+
+###ブロック情報
+```js
+> eth.getBlock(20)
+{
+ difficulty: 131968,
+ extraData: "0xd783010802846765746887676f312e392e34856c696e7578",
+ gasLimit: 131620495,
+ gasUsed: 0,
+ hash: "0xbc4a240d033051bc26f1f756b847fa93daa5d5e920b57f40d723b5473163002a",
+ logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ miner: "0x95d0ab3bcb76b3a56d4cd0c5289cccdf972c3766",
+ mixHash: "0x9b7924b0733ef8eff23e283c04ddd17dbb76284476b00978014d18b6d597e9dc",
+ nonce: "0x33d81415781d1db1",
+ number: 20,
+ parentHash: "0x1eb4061cc665ae248b3968a15d9b58bf8ba36ad676c8223ff9f4f7db2c4d9873",
+ receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ size: 536,
+ stateRoot: "0x4eef1c1ed228cd3647ac5803e516c950966b1637e6d6de66cfeaf389131edd0c",
+ timestamp: 1523721735,
+ totalDifficulty: 2646336,
+ transactions: [],
+ transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ uncles: []
+}
+```
+
+###残高
+```js
+> eth.getBalance(eth.accounts[0])
+3.615e+21
+```
+###口座のアンロック
+```js
+> personal.unlockAccount(eth.accounts[0])
+Unlock account 0x95d0ab3bcb76b3a56d4cd0c5289cccdf972c3766
+Passphrase:
+true
+```
+###送金
+```js
+> eth.sendTransaction({from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(3.5, "ether")})
+"0x9deec8faff406b7ae0142032a367fe72572449e58ddf85b597c035041ca7ac23"
+```
+トランザクションIDが返される
+**採掘を実行中でないとトランザクションが実行されない**
+
+###トランザクション情報
+```js
+> eth.getTransaction('0x9deec8faff406b7ae0142032a367fe72572449e58ddf85b597c035041ca7ac23')
+{
+ blockHash: "0x4d5808eab4f5c5a24bc93c5ae3c59d74554f265b5500991b7d6b3c94941ab51d",
+ blockNumber: 759,
+ from: "0x95d0ab3bcb76b3a56d4cd0c5289cccdf972c3766",
+ gas: 90000,
+ gasPrice: 18000000000,
+ hash: "0x9deec8faff406b7ae0142032a367fe72572449e58ddf85b597c035041ca7ac23",
+ input: "0x",
+ nonce: 0,
+ r: "0x198b0598cc2768eadd7a4cbe2b23c18d1e9c3ba6cfe913033fbdfdd6db438892",
+ s: "0x45b196f32354c65263b2479fb1b9ae8435f4aaa9fb6a2ddb78fbe80e5b623c56",
+ to: "0xc39e22c8907ef0982753f0d0ed47c9abd1c4679f",
+ transactionIndex: 0,
+ v: "0x1c",
+ value: 3500000000000000000
+}
+```
+##Solidity
+イーサリアムプラットフォーム用の独自言語。
+イーサリアムネットワークに送受信されるEthereum Virtual Machine Code(EVM Code)に変換される。
+
+###Solidityコンパイラのインストール
+ubuntu
+
+```console
+$ sudo add-apt-repository ppa:ethereum/ethereum
+$ sudo apt-get update
+$ sudo apt-get install solc
+```
+Mac
+
+```console
+brew update
+brew upgrade
+brew tap ethereum/ethereum
+brew install solidity
+brew linkapps solidity
+```
+
+##プラズマ・キャッシュ
+取引所がこの技術を導入している場合、取引所がハッキングされてもユーザーの資産が保護される。
+ユーザーがイーサを取引所に預けると、取引所は同じ価値を持つプラズマのコインを生成する。
+このプラズマを他の所有者が引き出そうとすると、所有者に警告がいく。
+ユーザーが取引履歴を証明できれば、不正な取引を防止できる。