Truffle compile: "Invalid input source specified." の解決法

問題:

➜ truffle-webpack git:(addmarketplacesolc) truffle compile --verbose
Compiling ./contracts/marketplace.sol...
Compiling ./contracts/networkmanager.sol...
Compiling networkmanager.sol...

Invalid input source specified.
Compiliation failed. See above.

 

解決策:

Worked: import "./networkmanager.sol";
Did NOT work: import "networkmanager.sol";

 

解決後:

➜ truffle-webpack git:(addmarketplacesolc) truffle compile -dev
Compiling ./contracts/marketplace.sol...
Compiling ./contracts/networkmanager.sol...
Writing artifacts to ./build/contracts

 

参考:

truffle compatibility? · Issue #79 · ConsenSys/singulardtv-contracts · GitHub

 

(過去のsolc versionでは、文法が真逆だった):

Python CSV セットアップメモ

pandasでのcsv読み込みについてのチュートリアル:

Pythonでpandasを使う - 計算物理屋の研究備忘録

pandas でメモリに乗らない 大容量ファイルを上手に扱う - StatsFragments

 

長い包括的なチュートリアル(read csvから簡単な統計分析まで):

Part 1, Section 3: Introduction to Using Python for Data Analysis.

 

開発ツール:

https://lecture.ilect.net/lecture

geth 1.6.7 と Solidity 0.4.18 でスマートコントラクトを走らせる方法リスト

バージョン

geth: 1.6.7

solc: 0.4.18-develop.2017.10.12+commit.81f9f86c.Darwin.appleclang

 

状況:

Solidityのスマートコントラクトをコンパイル後、

gethクライアントでEthereumへスマートコントラクトを送ることができなかった。

 

使えたチュートリアル:

https://alanbuxton.wordpress.com/2017/07/19/first-steps-with-ethereum-private-networks-and-smart-contracts-on-ubuntu-16-04/

 

from 多くのコメントが充実しているページ:

https://ethereum.stackexchange.com/questions/15435/how-to-compile-solidity-contracts-with-geth-v1-6/15437

 

 

abi入力、parseのコマンドがエラーになって使えなかったチュートリアル:

https://qiita.com/toshikase/items/28725215f7ad678b4b68

https://ethereum.stackexchange.com/questions/15435/how-to-compile-solidity-contracts-with-geth-v1-6

 

 

gethでのSolidityセットアップ

全ての場合についてのチュートリアル

http://solidity.readthedocs.io/en/develop/installing-solidity.html

 

[解決]ソースからbuildする場合:

http://block-chain.jp/tech/install-solidity-solc-on-mac/

インストールされていることを確認する方法:

$ which solc

パスが出てきたらインストールされている。

gethターミナルでのeth.getCompiler()メソッドはもう使われていないのでこちらを用いる。

 

 

homebrewでインストールする場合:

公式チュートリアルContract Tutorial · ethereum/go-ethereum Wiki · GitHub

 [未解決] こちらのコマンドでの一連のエラーを紹介: brew install solidity

1: 2つのエラー

エラー: 

・Z3 SMT solver NOT found. CMake Error: The following variables are used in this project, but they are set to NOTFOUND

GitHub (GitHub::AuthenticationFailedError)
The GitHub credentials in the macOS keychain may be invalid.

エラー詳細:

==> cmake . -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG==> cmake . -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUGLast 15 lines from /Users/name/Library/Logs/Homebrew/solidity/01.cmake:-- TARGET_PLATFORM  Target platform                          Darwin
---------------------------------------------------------------
(省略)

Z3 SMT solver NOT found.

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:/tmp/solidity-20171012-2023-5alie/solidity_0.4.17/libdevcore/Boost_INCLUDE_DIR   
used as include directory in directory /tmp/solidity-20171012-2023-5alie/solidity_0.4.17/libdevcore
-- Configuring incomplete, errors occurred!
See also "/tmp/solidity-20171012-2023-5alie/solidity_0.4.17/CMakeFiles/CMakeOutput.log".

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
https://github.com/ethereum/homebrew-ethereum/issues

/usr/local/Homebrew/Library/Homebrew/utils/github.rb:210:in `raise_api_error': GitHub (GitHub::AuthenticationFailedError)
The GitHub credentials in the macOS keychain may be invalid.
Clear them with:
printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
Or create a personal access token:
https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew
and then set the token as: export HOMEBREW_GITHUB_API_TOKEN="your_new_token"

 

 解決: Github keychainを作成してexport pathを設定

brew search して GitHub API rate limit で怒られたときの対処方法 - Qiita

 

 

2:  2つのエラー

Z3 SMT solver NOT found.
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/tmp/solidity-20171012-7826-1o690xi/solidity_0.4.17/libdevcore/Boost_INCLUDE_DIR
used as include directory in directory /tmp/solidity-20171012-7826-1o690xi/solidity_0.4.17/libdevcore

-- Configuring incomplete, errors occurred!
See also "/tmp/solidity-20171012-7826-1o690xi/solidity_0.4.17/CMakeFiles/CMakeOutput.log".

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
https://github.com/ethereum/homebrew-ethereum/issues

These open issues may also help:
Add a dependency on jsoncpp for solidity? https://github.com/ethereum/homebrew-ethereum/issues/123
Error when installing Solidity compiler https://github.com/ethereum/homebrew-ethereum/issues/96
XcodeDefault.xctoolchain/usr/bin/ranlib: file: libsolidity.a(AsmAnalysisInfo.cpp.o) has no symbols https://github.com/ethereum/homebrew-ethereum/issues/128
Add ccache dependency and adds a bottle https://github.com/ethereum/homebrew-ethereum/pull/119

 

解決策が見つからなかったのでソースからビルドしました。 

 

 

Parityセットアップ

参考:

https://github.com/paritytech/parity

 

Install from bashができなかった:

➜ ~ bash <(curl -kL -s -k -v --tlsv1.2 https://get.parity.io)
* Rebuilt URL to: https://get.parity.io/
* Trying 2400:cb00:2048:1::681b:840a...
* TCP_NODELAY set
* Connected to get.parity.io (2400:cb00:2048:1::681b:840a) port 443 (#0)
* SSL peer handshake failed, the server most likely requires a client certificate to connect
* Curl_http_done: called premature == 1
* Closing connection 0

 

Build from Sourceを実行:

➜ ~ curl https://sh.rustup.rs -sSf | sh

➜ ~ git clone https://github.com/paritytech/parity

➜ ~ cd parity

➜ parity git:(master) cargo build --release

------------------------------

 

これだけだと parityというコマンドがターミナルで使えない。

よって以下:

 

➜ target git:(master) cp -f /Users/username/parity/target/release/parity /usr/local/bin

 

ネットワークへ接続

普通: 

parity — chain=ropsten

高速にする方法: 

Is it possible to make the Parity software sync faster? - Ethereum Stack Exchange


➜$ parity --warp --mode active --tracing off --pruning fast --db-compaction ssd --cache-size 1024

 

この状態でウェブブラウザでこちらへアクセスすると
Parityのユーザインタフェースが現れる: http://127.0.0.1:8180

 

------------------------------

インターフェースの使い方:

Setting up Ethereum smart contract development using Parity on Ubuntu

 公式 smart contractを走らせるチュートリアル:

Smart Contracts · paritytech/parity Wiki · GitHub

 

パソコンの時間がずれているというポップアップ画面が出て来た場合:

1: sudo ntpdate -u time.asia.apple.com

2:Parityを再起動

参考: Mac のターミナル上で OS の時刻情報を確認・変更する方法 | gotohayato

 

------------------------------

 

このままだとお金がないので、送金もスマートコントラクトのデプロイもできない。

初期金額を得るためには、少なくとも以下の3つの方法がある。

1: (Ropsenネットワークの)Etherを送ってくれるサービスに、自分のアドレスを登録してリクエストする

http://faucet.ropsten.be:3001/

 

2: genesis blockで設定する (プライベートネットワークを構築する場合のみ)

 

3: Ropsenネットワーク( またはプライベートネットワーク)でマイニングする

久々のRailsメモ: devise、scaffold、scaffoldによるviewエラー

 

ユーザー認証: deviseを用いてメールによる認証を行う

qiita.com

他: 

ログイン認証も簡単!Railsでのdeviseの使い方 | TechAcademyマガジン

 

 

Scaffold

tanibkk.hatenablog.com

 

Scaffoldによるviewでのエラー対応:

qiita.com

Library not loaded: libmysqlclient.18.dylib (LoadError) の対処

環境

mysql 5.7

homebrew 1.3.2

mac Sierra 10.12.4

 

まとめ記事:

 

未解決だった問題:

新たに入れた、ダウングレードしたバージョンの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...

 

解決:

railsで指定した名前のデータベースをMysqlに作る

$ bundle exec rake db:create

$ rake db:migrate

$ mysql.server start

 
$ rails s
 

参考: railsのapp作成でmysqlを使用する時の導入とハマるところ rake db:createができるまでの流れ - Qiita