【備忘録】geth起動時オプション
※–networkid:任意のネットワークID(1=Frontier, 2=Morden (disused), 3=Ropsten,
4=Rinkebyなのでそれ以外)
※–datadir "./eth_private_net":データ格納先
※–maxpeers __:最大ピア数
※–nodiscover:ピアを自動接続させない(自動で未知のノードと接続してしまうため)
※–rpc:gethのRPCサーバとしてのAPIを有効化
※–rpcaddr "localhost":読者の環境に合わせてgethノードのIPアドレスを指定
Remix-ideとgethを同じPC上で利用するなら "127.0.0.1"
か"localhost"を指定
※–rpcport "8545": RPC APIのポート番号を指定(特に問題なければデフォルトの
8545を指定)
※–rpccorsdomain " * ": クロスドメインアクセスを許可するドメイン。ここでは任意の
ドメインを許可
※–mine:gethの起動と同時に採掘を開始するオプション
※–unlock __: 指定されたアドレスのアカウントのロックを解除。coinbaseのアドレ スを指定。(起動時にパスワードが求められる。)
※console :consoleサブコマンドを指定することでgethの起動時に同時に採掘やトラン
ザクションの生成などを対話的に進めることのできるコンソール(要はコ
マンドプロンプト上での会話?)を立ち上げることが可能。
このコマンドを付加しない場合,起動コマンドの最後に&をつけることで
gethはバックグラウンドで起動することになる➝例を示す
※> :マイニングのlogを表示する?(二つ重ねたときなどの違いは不明)
※–testnet :Ropstenへ接続。proof-of-work のテストネットワーク。
※–rinkeby :Rinkebyへ接続。proof-of-authority のテストネットワーク。
※–syncmode __ :ブロックチェーンの同期モードを指定します。"fast" または "full"
または "light" を指定可能。デフォルトはfull
※–identity __ :自ノードの名前を指定。
※–nodekey <value> :P2Pノードのキーファイルを指定。
※–nodekeyhex <value> :16進数でP2Pノードキーを指定(テスト用)。
※–unlock __ :unlockするアカウントのリストをカンマ区切りで指定。
※–targetgaslimit __ :マイニングするブロックのgaslimitを指定(デフォルトは4712388)
<参考文献>
https://blockchain-jp.com/tech/453
https://book.ethereum-jp.net/first_use/realtimecompiler.html
【備忘録】ubuntuコマンド
・apt-getでインストールしたパッケージの場所を知りたいとき
$ dpkg -L (パッケージ名)
・apt-getでインストールしたパッケージをアンインストールしたいとき(設定ファイル以外)
$ sudo apt-get remove 【パッケージ】
・apt-getでインストールしたパッケージをアンインストールしたいとき(設定ファイルも依存関係にあるファイルも完全に削除するとき)
$ sudo apt-get --purge remove 【パッケージ】
・ディレクトリを削除したいとき
$ rm -R ディレクトリ名
viの終了方法(まずEscキーを何回か連打してノーマルモードにする)
・無編集の状態でvimを閉じる
:q
・vimを保存して終了
:wq
・vimの変更内容を破棄して終了
:q!
<参考サイト>
【Ubuntu】apt-getでパッケージをinstall / uninstall / upgrade | かわたま.net
石川県の神社たち
白山比咩神社(しらやまひめじんじゃ)
概要:菊理媛尊(ククリヒメノミコト)はイザナギとイザナミを仲直りさせたことから「縁結びの神」として知られている.
そもそも古来より白山は北陸地方で信仰を集めており,古今和歌集に収録されている紀貫之の詩にもその名を見ることが出来る.明治時代には白山比咩神社を本宮,山頂の神祠が奥宮と定められ,長年信仰の地として親しまれている.
気多大社(けたたいしゃ)
御祭神:大己貴命(おおなむちのみこと)
概要:大己貴命は最も有名な名としては大国主神(おおくにぬしのかみ)として知られ,出雲大社や犬神神社の祭神としても祀られている.
気多大社は大己貴命が出雲国から舟で来た後,国土を開拓し守護神としてこの地に静まったものを祀っているという.
また遥か昔,聖武天皇の御代であったころ,能登国は越中国の一部であり,気多大社はその一宮でした.中世以降は能登国一宮とされ,代々の領主から手厚い保護を受けてきた.近年では政治的対立により,神社本庁からの離脱するといった選択をしていることに留意するべきである.
奥宮は「入(い)らずの森」という聖域の中にあり,一般参拝はできないようになっている.
石浦神社
御祭神:大物主神(おおものぬしのかみ)ほか
概要:縁結びのご利益があるといわれている.金沢市内にある神社で一番歴史を持つとされており,その創建は古墳時代まで遡るとされる.
祭神である大物主神は日本書紀によると,気多大社に祀られる大己貴命の和魂とされる.大神氏(三輪氏)の祖先ともされ,とにかく伝承が定まらない神様である.
ethereumで複数ノードを接続する part1
さて,ここまででethereumの大体の挙動を確認することができた.
ここまで用いたノードは一つ(=デスクトップ一台)だったが,いよいよ二つ目のノードを接続してみる.
今回,二つ目のノードとしてノートパソコンを用いて実験を行う.
まず二つのノードそれぞれが
・同じmyGenesis.jsonファイルを持っているか(要はgenesisblockが同じか)
確認してほしい
同じファイルを持っている場合,双方のノードで以下のコマンドを実行してgethを起動する
すると以下のような画面が出てきてgethを起動できる
↓一台目のノードの画面(デスクトップ)
↓二台目のノードの画面(ノートパソコン)
なぜかデスクトップのほうの画面だけ,今までよりもより細かい?情報が表示された.
次にこの時点でまだ他のノードと接続されていないことを証明するために以下のコマンドを実行する.
2.接続へ
いよいよここから接続体制に入る.まずそれぞれのノードの情報を取得する.
ここで,筆者の場合,一台目のノード(デスクトップ)のほうは,下の画像において白でラインを引いているようにすでに情報がでていたのでそれも記しておく.
↓拡大&わかりやすいver
また二台目のノード(ノートパソコン)のほうではコマンドを実行することによりノード情報を得た.
ここまででそれぞれのノードの情報を取得することができた.
次にノード間の接続を行うため,互いの情報を打ち込む
↓一台目のノード(デスクトップ)の画面
この結果,以下のコマンドをもって接続されているノードを確認することができる.
↓一台目のノード(デスクトップ)の画面
↓二台目のノード(ノートパソコン)の画面
ここまでで,二つのノードを接続することができていることを確認することができた.
なお,片方のノードを閉じるた状態でもう片方のノードにおいて
>net.peerCount
コマンドを実行すると
0
という値が返ってくることが確認された
よってこの二つのノードが接続されていることは,その挙動からも確認できた.
<追記 2019/11/04>
今回複数ノードを接続させるため,gethを起動するとき特別に
>geth --networkid 10 --datadir ./test --maxpeers 1 --nodiscover console 2>> node.log
というコマンドを打ち込んで実行した.
後日,従来のコマンドで通常起動した後,複数ノード接続か可能か実験してみた.
結果...
普通に接続できました(笑)
ということで,gethの起動さえできれば実のところは大丈夫らしい
では,今回のコマンドで起動することで得られるメリットは何か?
おそらく,--maxpeerという部分で,接続可能なノード数を制限することができるのではないのか?と考察する.
<参考文献>
Ethereumで複数ノードをつなげてプライベートネットワークを作ってみる | BlockChain Online ブロックチェーンオンライン
gethとsolidity(REMIX)の連携
ここでunlockの後ろに続くのは起動するgeth上の自身のアカウントのうち一つ.
パスワードを求められるので,パスワードを事前に確認しておくとよいかもしれない.
ここで注意するのは先にgethを起動しておく必要があるということ!!
じゃないと,browser-solidity と連携することができないので注意!!
連携に成功すると図中の赤枠内のアカウントが同じものになるのが見て取れる.こうなるとgethとRemix(solidity)の連携を視認できる.
後日再度連携しようとすると,エラーメッセージが出た.この時は使用ブラウザをfirefoxからchromeに変更することで解決できた.一度試してみるとよいかもしれない.
マイニングして得たetherを送金する part3
迷宮入りしてなんの進歩もないまま過ぎていく日々...
最後の手段としてgethのvesrsionのダウングレードをやってみる!!
じゃあどうやってやるんだい?と聞かれるとこういうしかない...
「いったんgethファイルを消してダウンロードからやり直してください(__)
やり方はいたって簡単♪
【step1】gethを入れたとき同様に,公式のサイトに飛ぶ
【step2】stable releaseの下にあるshow older releaseボタンを押して過去のversionを探す.
【step3】version1.8.20のinstallerを選び,初めにgethを設定したようにダウンロード
(gethのダウンロードのやり方を忘れた人用↓)
これで完了です!
ちなみにversion1.8.20を指定しているのは筆者が使っているという理由だけなのでほかのversionでもとりあえず正しく作用すれば問題ないです.
ここで重要なのはversionを下げることで解決するかもしれないということ.
一つでも役に立てば幸いです!
伊勢神宮(内宮・外宮)
趣味が欲しいなぁと思ってた今日この頃,友人から誘われて伊勢旅行に行くことになりましたo(´∇`*o)
伊勢といえばぱっと思いつくのは伊勢神宮ですよね!ということでこれを機に御朱印集めをさせていただくことにしました!!
とはいうものの,神社の歴史も知らずに,ただ御朱印をいただくのは失礼なような...
というわけで,伊勢神宮について調べてみました~~
1.構成
そもそも伊勢神宮は日本の古くからすべての神社の最上位に君臨するとてもありがたい神社として扱われてきました.
神宮は天照大神を祭る皇大神宮(こうたいじんぐう)と豊受大神を祭る豊受大神宮(とようけだいじんぐう)など2所の正宮と14所の別宮,43所の摂社,24所の末社,42所の所管社からなる.皇大神宮と豊受大神宮は通称「内宮」「外宮」と呼ばれる.
2.正宮の御祭神について
2-1.天照大神(内宮)
イザナギとイザナミの娘.日本列島はこのイザナギとイザナミによってつくられたことになっています.
天照大神は日本の皇室の祖先にして,太陽の神といわれています.有名な「岩戸隠れ」は「日食」をモチーフにしたと考えられています.
2-2.豊受大神(外宮)
イザナミの孫.つまり現代風にいうと天照大神の姪もしくは甥にあたる.性別所説あり.食物の神様.これまた有名な「天の羽衣」伝説の天女にあたるという説がある.
3.そもそもなぜ伊勢に?
天照大神は,もともと天皇のそばで祀られていたが,第10代崇神天皇の御代に,寝殿をともにするのは畏れ多いという理由で皇居外のふさわしい場所にお祀りされることが決定する.そこでいったんは大和の笠縫邑(かさぬいのむら)にてお祀りされることとなった.
次代である第11代垂仁天皇の御代,永遠に神事を続けることができる場所を求めて皇女・倭姫命(やまとひめのみこと)が適地を探すこととなった.伊賀,近江,美濃などを回り,伊勢に来た時,「都からは遠いけど,美しい場所だからここにいたい」という神託が下り,ここに祀ることになった.
時は流れ第21代雄略天皇の御代.雄略天皇の夢に天照大神が現れ,「一人では寂しいから,豊受大神を連れてきて」といったことから外宮に祀られるようになったのが現在の神宮の正宮の成り立ちである.
3.別宮について
3-1.月夜見宮(外宮)
御祭神:月夜命(つきよみのみこと).ツクヨミとして一般に知られている.天照大神の弟神.月の神.
概要:外宮の別宮の中で唯一,宮域外にある神社.
3-2.倭姫宮(内宮)
御祭神:倭姫命(やまとひめのみこと).第11代垂仁天皇の第4皇女.伊勢神宮の創健者.二代目斎宮.
概要:大正12年(1923年)の創建と以外に新しい.
3-3.月読宮(内宮)
御祭神:月夜命(つきよみのみこと)
概要:宮域内に月読荒御魂宮,伊佐奈岐宮,伊佐奈弥宮と他の内宮別宮の3社がある.御祭神はそれぞれツクヨミの魂,イザナギ,イザナミである.
参拝の順序は月読宮➝月読荒御魂宮➝伊佐奈岐宮➝伊佐奈弥宮の順で参拝するのが正しいとされる.並んでいる順番は月読荒御魂宮➝月読宮➝伊佐奈岐宮➝伊佐奈弥宮なので注意が必要!
3-4. 伊雑宮(内宮)
御祭神:天照大神御魂
概要:読みは「いざわのみや」.
江戸時代には聖徳太子が編纂を命じたと伝えられる「先代旧事本紀大成経」が出回り,その中に,「内宮,外宮は伊雑宮の分家である」という主張があったため,ひと騒動が起きた.結局,当時の朝廷はこの出回った「先代旧事本紀大成経」を偽物とし,関与した者を罰したが,果たして...
3-5.瀧原宮(内宮)
御祭神:天照大神御魂
概要:伊雑宮同様,天照大神の御魂を祀っている.明確な違いは次回までの宿題ということで...
4.その他周辺神社
4-1.二見興玉神社(ふたみおきたまじんじゃ)
御祭神:猿田彦大神,宇迦御魂大神
概要:猿田彦大神は「みちびきの神様」といわれ,交通安全や学業成就など様々な幸せに導いてくれる神様であると考えられています.宇迦御魂大神(うかのみたまのおおかみ)はお稲荷様と同一視もされる女神.五穀豊穣の神といわれ,また繁栄の神であるとされる場合もある.イザナミとイザナギの子とされる.
この神社は観光名所の一つ「夫婦岩」でも有名.また岩戸隠れでおなじみ「天岩屋」もある.
4-2.猿田彦神社
御祭神:猿田彦大神
概要:二見興玉神社と同様に,伊勢神宮に参拝する前に訪れるのが良いとされる神社の一つ.君が代の歌詞にも出てくるさざれ石が存在する.
伊勢神宮参拝における注意点
①内宮は左側通行,外宮は右側通行と左右が逆なので注意!!(それぞれの手水舎の位置に合わせられている)
②鳥居の前では軽く一礼,参道の真ん中は神様の通り道なので歩かない
鳥居をくぐることは汚れをはらう意味もある.また,くぐるときは左足から踏み出すといったことにも留意!
③手水舎での作法
右手を清める➝左手を清める➝左手に水をすくい口をすすぐ➝左手を清める➝ひしゃくを垂直に持ち,水を伝わせるようにしてひしゃくの柄(持ち手)を清める
④参拝するときは外宮から!!
「外宮先祭」というように,ほとんどの祭事が外宮から行われている.これは天照大神の御神慮だと言い伝えられている(「太神宮諸雑事記」).よって外宮から参拝するというのが一般的.
⑤正宮ではお賽銭をしない!!
参拝するのは,個人のお願い事をするのではなく,今日まで無事に生きることができていることを感謝しに来るという考えがあるからです.
白い布を敷いてあたかもお賽銭箱のような場所がありますが,あれはお賽銭により,神聖な場所が汚されないようにしているガードの役割だけです!!
個人的なお願いをする場合はそれぞれの「第一の別宮(内宮→荒祭宮,外宮➝多賀宮)」に行きましょう!!.
⑥拝礼は二拝二拍手一拝
参拝の際には作法を守り,また歴史を知りながら行くと楽しくなるかも!
今回はこの辺で...
マイニングして得たetherを送金する part2
前回は衝撃の「トランザクション送れないよ」事件が起こった.
さまざまな方法で原因を解明していく
[問題点1]
”hash"miner.stop()を実行後に"true"ではなく"null"と表示される”
いろいろ調べてみたが特に記述なし.英語でも日本語でも特にここに引っかかっている人はいないのでスルーすることにした.(まぁ,ちゃんとマイニング止まるしね...)
[問題点2]
調べていく最中,どうも”transactionがpendingに詰まっている"という事象は,実際のethereum取引でも起きるようなのでここから攻めていく.
ここではgenesisblockに記載しているgas priceが良くないのかと思って数値をいじってみたけど,結果は何も変わらなかった.
ちなみにgenesisblockのほうでは16進数versionで記載している扱いになるので,注意!!
eth.getBlock(0)
でgenesisblockの内容を照会したとき,コマンド上では10進数で表示されるので,その違いはあまり気にしなくても大丈夫.
➝つまり表記法が違うだけってこと.
[問題点3]
”UbuntuOSではなくWindowsOSで動かしている”
これは少し前から思っていた.「なら最初からUbuntu使えよ!」という鋭いツッコミが飛んできそうだが,仕方ない...パソコン苦手なんだもの...
とはいうもののこのままじゃらちが明かないのでUbuntuをいれてみた
結果は...
変わらん...なんもかわらん...
ということでまた次回...続き
マイニングして得たetherを送金する part1
引き続きetherを送金する · Ethereum入門を参考に学習していく.
前回まででethereumをプライベート環境においてマイニングし,その報酬を得た.ここで得た報酬を違うアカウントに送金できるかやってみる.
1.送金先のアカウントを作る
etherを送金するには送金先のアカウントが必要だ.前回同様の手法で,アカウントを新規作成する.
この段階で一度,現在の保有アカウントを確認してみる.
保有アカウントを確認するには下のコマンドを実行する.
実行すると次のように結果が出る.
前回作成しておいたパスワードがmapleのアカウントもしっかり表示される.
2.いよいよ送金
2-1.[前準備]アカウントのロック解除
さあ,いよいよ送金だ.etherの送金段階では送金元のアカウントのロックを解除する必要がある.
gist769e64a49b98c09975445669dc687a7a
ロックを解除したいアカウントの番号を[]の中に入れる.おそらくこれは"eth.accounts"コマンドを実行したときに表示される順番だと思う.
※ここでは1からではなく0から数字が始まるということに注意!!
※またPasswordは表示されないので,画面上は何も入力してないように見える.
※一定時間経過後に自動ロックされることにも注意!!
2-2.[本題]送金
etherを送金するには下記のコマンドを実行する.
ここでは「0番目のアカウントから1番目のアカウントに5ether送金せよ」という指令を出した.
上手く実行されるとこの取引記録のハッシュ値が返され,トランザクションはトランザクションプールに待機状態になる.
↓待機状態(まだブロックに含まれていない)のトランザクションを確認するコマンド
↓実行結果
"from",”hash","to"に注目してほしい.送金元,送金先,そしてトランザクションのハッシュ値が同じであることが確認できる.
なんとかetherを送金することができそうだ
※送金するにはマイニングを実行している必要がある.マイニングを止めている状態ではトランザクションはトランザクションプールから出ることができないということに注意!!
3.結果の確認
ここまで出来たらあとは送金先がetherを受け取っているかを確認するだけだ.
指定したアカウントがetherをどのくらい持っているか確認するコマンド
を実行し確認.o(●´ω`●)oわくわく♪
ガ━━━━━━∑(゚д゚lll)━━━━━━ン
なぜだ...なぜなんだ...送信できていない.
トランザクションプールはどうだろう?
まだ,ここに待機...何時間たったと...
なぜ送れないのか,次回検証します.
<参考文献>
https://book.ethereum-jp.net/first_use/sending_ether.html
http://tech-blog.hachidoriinc.com/archives/194
Etheriumのプライベート環境で実際にマイニングしてみる
引き続きetherを採掘する · Ethereum入門を参照しながらethereumについて学ぶ.
今回は前回構築したethereumのプライベートネットワーク上で実際にマイニングを行い,etherを採掘してみる.
1.アカウントの作成
まずマイニングを行う前に,マイニングノードとして用いるアカウントを新規作成する.
新規作成したアカウントのパスワードが(" ")の中の部分に当たる.(今回の場合はmaple)
実行すると20バイトのアドレスが表示される.
2.実際にマイニングしてみる
ここまででプライベートネットワーク上のアカウントを作成することができたので,実際にマイニングを行ってみる.
↓マイニングを指令するコマンド
コマンド実行後,下図のようにnullという返事が返ってくればマイニングが始まります.
でも本当にマイニングできているか不安になるとき,ありますよね?
そんな時は主に下記のようなコマンドを実行することで,マイニングの進捗を調べることができます.
①"eth.blockNumber"を実行するとその時までに作ったブロックの数が表示される.これが0だとマイニング実行後,まだブロックを生成することができていないことになる.
②"eth.hashrate"を実行すると,その時のハッシュレート(マイニングスピード)が表示される.この数値が大きけければ大きいほど高速でマイニングが行えている証拠だ.
なおハッシュレートが0の時は,マイニングがされてない,もしくはマイニング開始の指令は受け取っているが,実際にシステムが動き出していないということになる,
③"eth.mining"を実行すると,マイニングを行っているかどうかがtrue or falseで表示される."hashrate"が0でも"eth.mining"でtrueが帰ってくるとマイニングは開始されている証拠なので焦らずじっくり待つ必要がある.
マイニングが進むとblockNumberがどんどん増え,同時にマイニング報酬がもらえる.マイニング報酬を確認するために以下のコマンドを実行.
①まず初めに"eth.getBalance(eth.accounts[0])"というコマンドを入力してみる.するとethereumの最少単位であるweiで報酬が表示される.
②次に"web3.fromWei(eth.getBalance(eth.accounts[0]),"ether")"というコマンドを入力してみる.このコマンドではethereumの基本単位であるetherで報酬が表示される.
3.マイニングの終了
マイニングを終了するときは下記のコマンドを実行して終了.
↓実際の画面
ここまでで実際に構築したethereumのプライベート環境でマイニングを行うことができた.
<参考文献>
https://book.ethereum-jp.net/first_use/mining_ether.html?q=
windows環境でgethのプライベートネットワークを構築
gethにおいてプライベートネットワークを構築する.手順は主に
プライベート・ネットに接続する · Ethereum入門を参考に行う.
1.Genesisファイルの作成
ブロックチェーンにおける一番初めのブロックが記述されたファイルを作成する.bitcoinにおけるgenesis blockのようなもの.今回はプライベートネットワークにおいてEthereumを動作させるため,独自にgenesisファイルを用意する.
今回,genesisファイルは以下のコードで示した.
JSON形式で記された上記のコードをgethファイル直下に配置する.
※ここでメモ帳を用いた場合,JSON形式にすることができないので,ほかのコードファイルを用意する必要がある.(私はVisual Studio Codeをインストールし,記述した)
2.ブロックチェーン情報の初期化
以下のコードを入力し,ブロックチェーンの情報を上記のgenesisファイルの内容で初期化.
Succesfullyの文字が見えると初期化成功となる
↓失敗ver.
また成功すると同時にeth_private_netというフォルダーがgethフォルダーの中に新たに追加される.
3.gethを起動する
以下のコマンドを実行するとgethを起動することができた.
ここでコマンド中のnetworkid "15" の数字の部分は参照中のプライベート・ネットに接続する · Ethereum入門によると,genesisブロック内に記述されているIDと同一のものにする必要があるそう.しかしこの数字を変えてみてもgethの起動自体はできるので,現段階ではその重要性を感じることはできなかった.
上記コマンドを用いてgethを起動すると次のようになった.
ここまででwindows環境でgethのプライベートネットワークを構成することができるか確認できた.ここからはどのOSを用いていても同じコマンドを打ち込めば,gethが動作するようになる.なお,筆者の環境ではここからコピペができなくなったのでとても面倒くさい(笑)
4.動作確認
ここで先程記述したgenesisファイルを読み込むことができるか確認する.
↓実行結果
ここでgenesisブロックの記述内容と同じ数値が表示されていれば,適切に反映されていることを確認できる.(nonceの値を比べるのが手っ取り早い.difficultyの値は16進数表記から10進数表記に代わっているが,意味は同じ)
<参考文献>
https://blockchain-jp.com/tech/240
https://book.ethereum-jp.net/first_use/connect_to_private_net.html
Geth(Go etherium)をwindows環境で設定
1.gethの設定手順
1-0.Cドライブに前もってgethフォルダーを新規作成しておく
1-1.まずgethをダウンロードする.
1-2.geth 1.9.2 for Windows を選択(バージョンは異なる場合あり)
1-3.ダウンロードしたInstallerを起動し,手順にそって進んでいく.この時 Development tool にチェックをつける.(なくてもいいかも)
1-4.前もって作っておいたgethフォルダーの中にインストールされるようにダウンロード先を指定し,インストール.
1-5.closeを押してインストール終了
2.しっかりインストールできているかを下記の手順で確認
2-1.コマンドプロンプトを開く
2-2.以下のコマンドを入力
2-3.実行後に下の写真のようにgethの情報が表示されたら,正しく設定できている証拠!
ここまででgethをwindows環境で設定できたことになる.
<参考文献>
https://blockchain-jp.com/tech/240
https://book.ethereum-jp.net/first_use/connect_to_private_net.html