おふとんの中から寝言をつぶやく

ビットコインなどの暗号(仮想)通貨関連の話題を中心に雑多に書きます。

Windowsの環境変数に関する覚え書き

パスを通してるはずなのに、パス上の実行ファイルが動かせずに嵌まってたのが解決できたので覚え書き。

最初、ユーザーの環境変数でJAVABINを設定して、システム環境変数でそれを参照しようとしていたけど、ダメだった。

 

f:id:harmonir:20161227001618j:plain

 

それで、システム環境変数の中でJAVABINを設定したら、問題なく使えるようになりました。

 

f:id:harmonir:20161227001828j:plain

 

システムの環境変数が最初に読み込まれて、そのあとでユーザーの環境変数が読み込まれるということらしい。

 

 

インドのBitcoin取引所と、インド→日本への送金について覚え書き

TL上で結構な話題になっていたので、ちょろっと調べてみたので覚え書き。

 

btcnews.jp

 

 

まずインドの取引所

これは意外とたくさんありそうです… 軽く探しただけでもそれっぽいのが4件以上。

Unocoin | India's Bitcoin Company

Bitcoin India

BTCXIndia - India's leading Bitcoin Exchange

 

ここはトップページの下の方に、複数の取引所の情報が出ています。

Coinsecure | India's Bitcoin Exchange

便利ですね。

(ちゃんと調べていないので、取引所じゃなくて販売所やその他の会社が混じってる可能性があります)

 

ただ、どこの取引所でもそうですが、GOXする可能性があるので、ほんとに気をつけてくださいね。

 

あとインドの法律面は全く調べていないのと、現在インド政府がお金関連で色々動いているのでその辺も気をつけなければいけません。

 

インドから日本へ

では、売った後のルピーをどうやって日本に送りましょう?

海外から日本にお金を送るのはどうしても高いです。時間もかかります。

それでも! という方は色々調べてみてください。

 

簡単に経験者のブログを探したところでは、

Yu's blog from Mumbai - インド・ムンバイ便り: インドの銀行口座にあるルピーを日本に送金 ~帰国の時に学んだこと 2~

 

インドルピーから日本円へ両替する6つの方法!

 

やっとインドから日本への送金方法がわかったよ。|グローバルに活躍しよう。インドから情報発信!

 

こんな感じでしょうか…

 

海外の取引所を使うこともですが、お金に絡むことなので、くれぐれも自己責任でお願いします。

自分でも調べて納得してから動いてくださいね。

 

ZCASHをメインネットで採掘する方法を書いてみる

採掘を始めようかと情報を漁ってみたのですが、テストネットでの採掘の記事が多かった(古い記事しか見当たらなかった)ので、本番環境で採掘することができるように書いてみたいと思います。

 

  11/2追記: すでにWindowsなどでも速度の出るマイナーが色々出てるようです。

以下は、ウォレットを作りたい方向けになります。

 

とりあえず必要なものは、Linuxが動いてる64ビットマシンで、メモリはあればあるだけいいようですが、最低でも4GBの空きメモリが必要ということです。これはsend_manyコマンドを使って、t-addrからz-addrに送るときに必要なようです。(ちなみにうちは、8GBでがんばってます。同時にBitcoindがメインネットとテストネットの2つ分動いてます…さらにまいくr)

 

原文は

https://github.com/zcash/zcash/wiki/Mining-Guide

https://github.com/zcash/zcash/wiki/1.0-User-Guide#configuration

をご覧ください。

 

でははじめましょう。

 

Debian-based operating systems を使う場合。

バイナリパッケージが用意されています。

https://github.com/zcash/zcash/wiki/Debian-binary-packages

こちらをご覧ください。いくつかのコマンドを叩くとインストールされます。

apt-getが終わったら、zcash-fetch-paramsを実行し、zcash.confを必要に応じて書き換えるのを忘れないようにしましょう。

何をどう書けばいいのかは、自分でビルドする場合の最後の方に書きます。

 

 

自分でビルドする場合。

 

ビルドのための準備をします。

Ubuntu/Debian ベースのシステムの場合:

$ sudo apt-get install \
      build-essential pkg-config libc6-dev m4 g++-multilib \
      autoconf libtool ncurses-dev unzip git python \
      zlib1g-dev wget bsdmainutils automake

 

Fedra-based システムの場合:

$ sudo dnf install \
      git pkgconfig automake autoconf ncurses-devel python wget \
      gtest-devel gcc gcc-c++ libtool patch

 

 

以下共通:

上記の準備が終わったら、githubからソースを落としてきて、fetch-params.shを実行します。

$ git clone https://github.com/zcash/zcash.git
$ cd zcash/
$ git checkout v1.0.0
$ ./zcutil/fetch-params.sh

 

ビルドします。

$ ./zcutil/build.sh -j$(nproc)

(-j$(nproc)の $(nproc)部分は、お使いのプロセッサの数に置き換えてください。make の jオプションと同じです)

 

 

以下は、バイナリをインストールした方も必要です。

設定

ホームディレクトリ直下に .zcashディレクトリを作って、その中にzcash.confを置きます。

mkdir -p ~/.zcash
echo "addnode=mainnet.z.cash" >~/.zcash/zcash.conf
echo "rpcuser=username" >>~/.zcash/zcash.conf
echo "rpcpassword=`head -c 32 /dev/urandom | base64`" >>~/.zcash/zcash.conf

(注:テストネットで試されていた方は問題ないとは思いますが、addnodeの部分をmainnet.z.cashに置き換えてtestnet=1を削除します)

 

さあお待ちかね!

Enabling CPU mining: (CPUマイニングを有効化します)

もしマイニングを行いたい場合は、以下の設定も行います。

(ウォレットだけの方はこの設定は飛ばしてください)

$ echo 'gen=1' >> ~/.zcash/zcash.conf
$ echo "genproclimit=$(nproc)" >> ~/.zcash/zcash.conf

 

 

さあ、zcashを実行してみましょう。

$ ./src/zcashd

このような画面が表示されたらまずは成功です。

 

f:id:harmonir:20161030014420j:plain

f:id:harmonir:20161030014423j:plain

 

 

もし画面に何も表示させずにバックグラウンドで動かしたい場合、またウォレットとして動かしたい場合は、

$ ./src/zcashd --daemon

と書いて実行しましょう。

 

現在までのブロックデータの読み込みが完了した後、RPCを使用することができるはずです。 ここでテストする簡単な方法。

$ ./src/zcash-cli getinfo

 

成功したら以下のようになると思います。(SSはわかりやすいように時間情報も入れていますが、dateを書いていなければ出てきません。)

f:id:harmonir:20161030015128j:plain

 

Zcashを使うために:

掘らずに買ったり誰かからもらったりしたいですか?

 

まず 2種類のアドレスを作る必要があります。

 

t-addr を生成します。

$ ./src/zcash-cli getnewaddress
tb4oHp2V54vfmdgQ3v3SNuQga83KHTNi2a1

 

Zcashは、z-addrで受け取ります。

さぁz-addrを作ってみましょう。

$ ./src/zcash-cli z_getnewaddress
zcBXZERsEEfKkzvTFKqBq2xrY5nATj2aKqmXW6fqTE8jo4CoLh5QsbspzsTnYfkJnd67RvuWHkmbxKgeSyTraix2a9LfxPW

これは、プライベートアドレスを作成し、ローカルウォレットファイルにキーを格納します。送信者にこのアドレスを教えます。

 

Z-addrはとても長いので、容易にミスが起きるでしょう。それを避けるために環境変数に入れてみましょう。

$ZADDR='zcBXZERsEEfKkzvTFKqBq2xrY5nATj2aKqmXW6fqTE8jo4CoLh5QsbspzsTnYfkJnd67RvuWHkmbxKgeSyTraix2a9LfxPW'

注:ご使用のshellにあわせて書いてください。

 

 

あなたのウォレット内にあるアドレスを取得するには、次のコマンドを実行します。

$ ./src/zcash-cli z_listaddresses

 

このような感じで表示されると思います。

[
"zcBXZERsEEfKkzvTFKqBq2xrY5nATj2aKqmXW6fqTE8jo4CoLh5QsbspzsTnYfkJnd67RvuWHkmbxKgeSyTraix2a9LfxPW"
]

 

すばらしい!  誰かがこのZ-addrに送信します。確認する時はトランザクションを参照します。

$ ./src/zcash-cli z_listreceivedbyaddress "$ZADDR"

 

[
    {
        "txid" : "af1665b317abe538148114a45322f28151925501c081949cc7a5207ef21cb750",
        "amount" : 1.23,
        "memo" : "48656c6c6f20ceb2210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    }
]

注:z-addrを環境変数にセットできなかった場合は、"$ZADDR"の部分を生成されたz-addrで置き換えてください。

 

あなたのz-addrからコインを送ります。

送りたい相手のz-addrを書きます。

$FRIEND='zcBXZERsEEfKkzvTFKqBq2xrY5nATj2aKqmXW6fqTE8jo4CoLh5QsbspzsTnYfkJnd67RvuWHkmbxKgeSyTraix2a9LfxPW'

 

あなたが、0.5ZEC送りたい場合…

$ ./src/zcash-cli z_sendmany "$ZADDR" "[{\"amount\": 0.5, \"address\": \"$FRIEND\"}]"

 

あるいは、

$ ./src/zcash-cli z_sendmany "$ZADDR" "[{\"amount\": 0.5, \"address\": \"zcBXZERsEEfKkzvTFKqBq2xrY5nATj2aKqmXW6fqTE8jo4CoLh5QsbspzsTnYfkJnd67RvuWHkmbxKgeSyTraix2a9LfxPW\"}]"

$ZADDRはz_listaddressesで見た自分のアドレスに置き換えてください。このような形で書いて送ります。(実際にこのアドレスに送ってくれてもいいですよ:P )

 

数分待ってから、操作が完了しているか結果をチェックします。

$ ./src/zcash-cli z_getoperationresult

 

[
    {
        "id" : "opid-4eafcaf3-b028-40e0-9c29-137da5612f63",
        "status" : "success",
        "creation_time" : 1473439760,
        "result" : {
            "txid" : "3b85cab48629713cc0caae99a49557d7b906c52a4ade97b944f57b81d9b0852d"
        },
        "execution_secs" : 51.64785629
    }
]

 

 

既知のセキュリティー問題

各リリースにはそのリリースに影響を与えることが知られているセキュリティの問題を記述したドキュメントが./doc/security-warnings.mdにあります。

さらに、このドキュメントの最新バージョンをここで見つけることができます。

https://github.com/zcash/zcash/blob/master/doc/security-warnings.md

 

また、最近の通知や他のリソースのためのセキュリティページを参照してください。

https://z.cash/support/security.html

 

 大変おつかれさまでした。

 

注:この記事に従って採掘できなかったり、送受信で行方不明になったりしても責任は負えませんので、自己責任でお願いします。不安な部分は必ず原文をあたったり、少額で実験するようにしてください。

また、かなり大雑把に書いてるので間違い等見つけられましたらコメントなどでご連絡ください。