Library not loaded: libmysqlclient.18.dylib (LoadError) の対処
環境
mysql 5.7
homebrew 1.3.2
まとめ記事:
未解決だった問題:
新たに入れた、ダウングレードしたバージョンのmysqlは確かにlibmysqlclient.18.dylibをパソコンに入れていたが、
RailsのMysql2が探すパスではなかった。
解決策:
1:
$ which mysql
mysqlのファイルがあるパスを特定
2:
$ ls
dylibファイルを見つける
3:ファイルを Railsがdylibファイルを探すファイルにコピペする
ーーーーーーーーーーーーー
その後、Rails サーバーを立ち上げようとするとエラー。
エラー0: mysql root のパスワードが違う
解決: 設定し直し
https://stackoverflow.com/questions/6474775/setting-the-mysql-root-user-password-on-os-x
エラー1:
Puma caught this error: Unknown database 'pomodoro-life_development' (ActiveRecord::NoDatabaseError)
エラー2:
$ rake db:migrate
rake aborted!
ActiveRecord::NoDatabaseError: Unknown database 'pomodoro-life_development'
Mysql2::Error: Unknown database 'pomodoro-lif...
解決:
$ bundle exec rake db:create
$ rake db:migrate
$ mysql.server start
参考: railsのapp作成でmysqlを使用する時の導入とハマるところ rake db:createができるまでの流れ - Qiita
用語集
目次:
パス
ターミナル/コマンドプロンプト
コマンド
ターミナルで「~~の場所にとどまる」
geth
gethコンソール
ブロックチェーンネットワークが立ち上がっている時 /いない時
一覧:
=ファイル
*厳密には機能によって言い換えているが同じもの
パス
ファイルのある場所のこと。表記が特別。
例:
Macの場合:/Users/haru/projects
Windowsの場合: C:¥User¥Haru¥projects
「ファイルのパス(path)」とは保存場所への道しるべ - パソコン用語解説
Macのみ:ターミナル
コンピュータへの命令を入力するためのアプリ
普段できるよりも詳しい命令を可能にする。いわば品数の多いメニューのようなものだ。
Windowsではコマンドプロンプトと呼ばれる。
今さら聞けない!ターミナルの使い方【初心者向け】 | TechAcademyマガジン
コンピュータへの命令を入力するためのアプリ
普段できるよりも詳しい命令を可能にする。いわば品数の多いメニューのようなものだ。
Macではターミナルと呼ばれる
今さら聞けない!コマンドプロンプトの使い方【初心者向け】 | TechAcademyマガジン
コマンド
ターミナルやコマンドプロンプトで入力するコンピュータへの命令のこと
一定のルールが決められてあり、決まった命令をすると決まった反応がある。
コマンドの表記については、資料では 「$」という文字で始まることがあるが、これはコマンドの一部ではなく、その行がコマンドであることを示すための印である。コピペするときには$はコピペしない。
ターミナルで「~~の場所にとどまる」
ターミナルやコマンドプロンプトでは、現在いるパスが、文字を入力できる場所の左側に表示されている。
例:
Macの場合:/Users/haru/projects
Windowsの場合: C:¥User¥Haru¥projects
そのディレクトリから移動することもできるが、移動をしないということ。
移動方法:
Mac: cd 移動先のパス
Windows: chdir 移動先のパス
geth
今回用いるEthereum(イーサリアム)ブロックチェーンへ命令をするためのツール
これはイーサリアムブロックチェーンへの連絡を可能にする、携帯電話のようなものだ。
これが用意した文法を用いて、命令(コマンドを打って様々な操作)をすることができる。
gethコンソール
イーサリアムブロックチェーンの、特に1つのネットワークを指定するとコンソールを立ち上げることができる。これは、このネットワークに対して、 gethを用いてさらに詳しく命令を出すことができる、私たちにとってのメガホンのようなものだ。
表示されているときには「>」という印がターミナル/コマンドプロンプト左側に出ている。
また、ネットワークで主要な動きがされるたびにその記録がコンソールに表示されるという鏡の役割も果たしている。
ブロックチェーンネットワークが立ち上がっている時 /いない時
gethコンソールがターミナル/コマンドプロンプトで表示されている/いない時
*立ち上がっている時のみEthereum Walletを起動しましょう
Ethereum Wallet: no data is deployed on this contract
エラーのでたプログラム: Wallet内のリンクから参照できる公式チュートリアルサイト
Create a cryptocurrency contract in Ethereum
エラー: コントラクトがConfirmされてもエラー文面が出る。
no data is deployed on this contract
解明: プログラム内容のせいでこちらは Ethereum Wallet 0.9.0では使えない。
解決策: このプログラムを使う。
Subcurrency Example というプログラムをコピペ
プログラム冒頭に pragma solidity ^0.4.13; を追加して利用。
Solidity Tutorials | Ethereum Builder's Guide
ーー解決策ではなかったこと
解決策 1:
For contract to be succesfully published (especially on TestNet) your Maximum fee should be significantly greater than estimated.
解決している問題:
原因:
This happens if the transaction with your contract was mined, but them the wallet couldn't find data on this address using web3.eth.getCode(address). This happens if you don't provide enough gas for storing the contract.
it was executed but not stored. This is an encase and shouldn't happen normally.
from Mist: "No data is deployed on the contract address!" - Ethereum Stack Exchange
Mistでの解決策2: I clicked on the blue link and made both values the same
from Get error no data is deployed on this contract · Issue #133 · ethereum/wiki · GitHub
解決策3: 異なるプログラム
Windowsでのgethセットアップ
【はじめに】
Ethereumは開発者向けに作られた代表的なブロックチェーンネットワークであり、また現在におけるビットコインの次の総計価値を誇る仮想通貨の基盤技術です。このマニュアルでは、その代表的なクライアントであるGeth(go-ethereum)を用いて、パソコンにEthereumのテスト環境であるプライベートネットワークを立ち上げ、接続します。プライベートネットワークは、そのパソコンの中で完結するネットワークです。他のテスト環境にはMain net とTest netと呼ばれる環境がありますが、それらに比べるとプライベートネットワークでは保存すべきデータ量が少ないため、容易にEtherを採掘できます。
また、このEtherは仮想通貨としてトレードされている、通貨として価値があるEtherではなく、あくまでもテスト環境でのEtherであり、貨幣的価値はありません。
用語:ファイル(=ディレクトリ)
バージョン: Windows 8 (64bit)
gethバージョン: 1.6.7
手順
0:プログラミング用のテキストエディタが入っていない場合は入れる
(デフォルトのテキストエディタではのちのJSONファイル作成ができないため)
例: sublime textというエディタ
Sublime Text: The text editor you'll fall in love with
1:Archiveというファイルをクリックしてインストールする
https://geth.ethereum.org/downloads/
注意:トップばーのボタンをクリックしないで、スクロールして見えてくる下のリストから、Windowsタブを選択して、パソコンが32bitか64bitに応じて該当ファイルをインストールする。
注意2:Installerはインストールしなくていいのかもしれない。
2:zipファイルを解凍する
3:ポップアップ画面に対応する
Agree, OKなどを押して進む。
途中でgethを保存する先を決める画面がある。パスを設定する場合は設定して、
パスを忘れないようにどこかに記録/記憶して、進む。
終わったら画面を閉じる。
4:コマンドプロンプトまたはPowerShellを開き、その中で、gethが保存されている場所へ移動する。
コマンド例:
PowerShellの場合: chdir 'C:¥Program Files¥Geth'
コマンドプロンプトの場合: cd 'C:¥Program Files¥Geth'
5:そのディレクトリにgeth.exeがあることを確認する。
PowerShellの場合: ls
コマンドプロンプトの場合: dir
ーー
注意:このディレクトリからは移動せず、以下のステップをおこなってください。
必要であれば、コマンドプロンプトの新しいウィンドウを別途開きコマンドを打ってください。
新たなウィンドウを開くコマンド: コマンドプロンプト: start cmd.exe
ーー
注意:geth のみでコマンドを打つと、gethネットワークが接続して、大量のデータをダウンロードし始めてしまうので、打たないようにする。
ーー
6:今回のネットワークで使うためのデータを保存するためのファイルを作成する
どこか自分の決めた場所に、自分で決めた名前のファイルを作ります。
gethfileという名前にした場合の例: C:¥Users¥Haruko¥Documents¥gethfile
6:そのファイルの中にネットワークの最初のブロックを作成する
ここでは「mygenesis.json」という名前のファイルを作成します。
ファイル名はこちらにすることを推奨します。
Windowsにデフォルトで入っているテキストエディタではなく
プログラミング用のエディタを用いてファイルを作成してください。
テキストエディタで作成してしまうと、ファイル名がどうしても「mygenesis.json.txt」のように 「.txt」がついてしまい、使えません。
中身には以下を書き、保存します。
{ "nonce": "0x0000000000000042", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x400", "alloc": {}, "coinbase": "0x3333333333333333333333333333333333333333", "timestamp": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x", "gasLimit": "0x8000000", "config": {} }
http://qiita.com/oggata/items/eea4d5e37f38785f6079 より
7:同じファイルの中にネットワークのデータを保存するためのファイルを作成する
名前は自分で決めて結構です。
gethdataという名前にした場合の例: C:¥Users¥Haruko¥Documents¥gethfile¥gethdata
8:今後の処理のために、このファイルのあるディレクトリのパスを明らかにしておきます。
コマンドプロンプト: dir
結果の例: C:¥Users¥Haruko¥Documents¥gethfile
9:プライベートネットワークの最初のブロックを作成する
コマンドプロンプト/PowerShellにて、以下のコマンドを打ちます。
geth -datadir データ保存用のディレクトリのパス init 最初のブロックのファイルを作成したディレクトリのパス¥mygenesis.json
例: geth -datadirC:¥Users¥Haruko¥Documents¥gethfile¥gethdata init C:¥Users¥Haruko¥Documents¥gethfile¥mygenesis.json
以下のような文字列が出ていれば成功です。
WARN [09-05|16:56:13] No etherbase set and no accounts found as default
省略
INFO [09-05|16:56:13] Writing custom genesis block
INFO [09-05|16:56:13] Successfully wrote genesis state database=lightchaindata hash=6231b0…a0300b
10:プライベートネットワークのコンソール(コントローラ)を立ち上げる
コマンドプロンプト/PowerShellにて、以下のコマンドを打ちます。
geth -datadir データを入れるディレクトリのパス -networkid 2 -nodiscover -maxpeers 0 -port 0 console
例: geth -datadir C:¥Users¥Haruko¥Documents¥gethfile¥gethdata -networkid 2 --nodiscover -maxpeers 0 -port 0 console
文字列が出てきて、20秒以内にこのような三角が出てきたら成功しています。
>
こちらで様々なコマンドを打ち、ネットワークでの動作を指示することができます。
手順例:
Ethereumクライアント「Geth」を試してみる - Qiita
一覧:
Command Line Options · ethereum/go-ethereum Wiki · GitHub
11:ネットワークを閉じる
>のところに
exit
と打つとコンソールを閉じることができ、ネットワークも閉じられます。
データは保存されているので消えることはありません。
Ethereum Walletがgethで立ち上げたプライベートネットを認識しない
参考
1:
2:
What worked for me was opening the ethereum wallet from the console specifying the ipcpath
with --rpc
like this (from the ethereum wallet location)
Ethereum\ Wallet.app/Contents/MacOS/Ethereum\ Wallet --rpc /ipcPath/geth.ipc
This post details exactly all the steps needed to connect ethereum wallet to a private network
類似例
elements blockchain harucoin
➜ src git:(elements-bc2) ./elements-cli issueasset 1000 10 true harucoin
{
"txid": "cef1d6ee4b4c36ee7185d2178949a645802ce56102131b9b17127aa426b348e8",
"vin": 0,
"entropy": "c91481ac65fafca292aa023b19e85660ad5fed9da3f1e73ccfa46487329d572f",
"asset": "495d65c77fb310794e598656d2e8f74eb8d4144f360c0c4a9125ab4215ab14d9",
"token": "86b7b6c473c86315d7c179ea79312ae724176ed8fab4445a7f5c25ff5fedaf90"
}