electrum-ltcのdaemonで受信してみた

まずは受信用のアドレスを確認する必要がある。

$ electrum-ltc listaddresses -b --receiving

-bでバランス表示付きになり、--receivingで受信用のアドレスに絞り込める。

取引所 C-CEX.com - Crypto-currency exchange / MultiWallet から1.00LTC引き出してみた。 Feeが0.01LTC、今の価値だと4.5円ぐらいなのであまり頻繁には移動したくない。

BTCの場合はここで blockchain.info を使って追跡したいところだが、LTCの場合は http://explorer.litecoin.net/chain/Litecoin を使って、txidを検索するとよい。

以下のコマンドでconfirmedとunconfirmedの残高が確認できる。

$ electrum-ltc getaddressbalance アドレス

しかし、既にconfirmedになって数十分経過しているのに getbalance などで見ると届いていない。 仕方がないので、daemonを再起動。

$ electrum-ltc daemon stop
$ electrum-ltc daemon start

無事、受信できました。 しかし、こんなことではelectrum-ltcを使ったWebサービスを作るのは難しいかも。 BTCの場合はこんなことにならないのかな。

www.amazon.co.jp

にほんブログ村 その他生活ブログ 仮想通貨へ
にほんブログ村

FaucetBOX.comでテスト用のコインを手に入れた

FaucetBOX.com というサービスがあり、これを使ったFaucetサイトを巡回することで少額のコインがゲットできる。 とりあえずBitcoinとDogecoinをいくつか入手して、CoinomiやElectrumに入れてみた。 時間効率はよくないので、本当にひまなときにポツポツクリックするのがよいかと思います。

以下は私のアドレスのついたReferral linkです。よければ試してみてください。 何度もやっているとreCAPTCHAが追加質問を要求してくることがあるので、そのあたりがやめどきかもしれません。

Bitcoin faucets:
itsrainingbitcoins satoshi.ws freebitcoins4u

cryptorials bitcoinerz faucetbitcoins siizo oneadfaucet

Dogecoin faucets:
cryptorials freedogecoin 777doge cryptator like4bitcoinfree bluesatoshi top2200 doge4me lindasdoge

Web WalletにBitcoin SPVを試験的に追加しました

1年ほど前から Web Wallet という、ウェブブラウザから使える暗号通貨ウォレットサービスを運用しています。 Bitcoinも導入しかったのですが、フルノードであるbitcoindを動かすにはメモリとストレージがそこそこ必要なので、赤字垂れ流しの当サービス では導入できずにいました。

しかし、少し前からElectrumのdaemonを使えばできるのではないかと考え準備をしておりましたが、ようやくアルファ版として公開できるようになりました。

まだまだ実績も少なく問題が起きるかもしれませんので、少額で試していただければありがたいです。

なお、ソースコードGitHubで公開しております。

ohac/coinwallet · GitHub

にほんブログ村 その他生活ブログ 仮想通貨へ
にほんブログ村

electrumのコマンドラインからアドレスを作成する方法

bitcoindの場合、getnewaddressで簡単に新しいアドレスが作成できたが、electrumの場合、The gap limitである20個までしか最初は用意されていない。

Frequently Asked Questions — Electrum 2.5 documentation

How can I pre-generate new addresses? にあるようにGUIからだとコンソールからwallet.create_new_address()を呼び出せば作成できる。 しかし、CUIの場合はどうすればよいのか分からなかったため、以下のパッチを作成した。

gist.github.com

これによりgetnewaddressというコマンドが追加され、呼び出すたびに新しいアドレスを生成してくれるようになる。

にほんブログ村 その他生活ブログ 仮想通貨へ
にほんブログ村

ElectrumのDeterministic Walletを実感してみる

Electrumは単一のパスフレーズから複数のアドレスを生成するしくみになっているが、 普通に使っているだけではなかなか実感しにくい。 そこでrestoreコマンドを使うことでDeterministic Walletを実感してみた。

まずは元となるウォレットを作成する。 実験なので、/tmp/1 ディレクトリをHOMEにして作成してみる。

$ mkdir /tmp/1
$ cd /tmp/1
$ HOME=$PWD electrum setconfig a a # おまじない
$ HOME=$PWD electrum create
Password (hit return if you do not wish to encrypt your wallet):
たくさんアドレスが生成される
Your wallet generation seed is:
"ここにseedが表示される"
...
$ HOME=$PWD electrum listaddresses|md5sum
76fbce5a77d734513b4eb8830cd81e23  -

最後のコマンドで生成されたアドレスのハッシュを求めている。

次に /tmp/2 で restore してみる。

$ mkdir /tmp/2
$ cd /tmp/2
$ HOME=$PWD electrum setconfig a a
$ HOME=$PWD electrum --offline restore "ここにseedを入力"
$ HOME=$PWD electrum listaddresses|md5sum
76fbce5a77d734513b4eb8830cd81e23  -

確かに同じアドレスが生成されていることが分かる。

にほんブログ村 その他生活ブログ 仮想通貨へ
にほんブログ村

CoinomiのMonacoinサーバがどうなっているのか調べてみた

CoinomiというAndroid用ウォレットでMonacoinが使えるようになっている。

coinomi.com

github.com

このウォレットではelectrum-serverを使っているはずなので、ソースコードにサーバのアドレスが書かれているはずである。 調べてみると wallet/src/main/java/com/coinomi/wallet/Constants.java で定義されていた。

new CoinAddress(MonacoinMain.get(),     new ServerAddress("mona-cce-1.coinomi.net", 5022),
                                        new ServerAddress("mona-cce-2.coinomi.net", 5022)),

Litecoinも以下のように定義されている。

new CoinAddress(LitecoinMain.get(),     new ServerAddress("ltc-cce-1.coinomi.net", 5002),
                                        new ServerAddress("ltc-cce-2.coinomi.net", 5002)),

すべてcoinomi.netのサブドメインとなっているようだ。

Monacoin用のElectrumはまだないと思うので、とりあえずLitecoinでつないでみたところ、ちゃんと使えた。

$ electrum-ltc -1 -s ltc-cce-2.coinomi.net:5002:t

他にもいろいろとaltcoinがあるしtestnetもいくつかあるので、実験用にも使えそうである。

にほんブログ村 その他生活ブログ 仮想通貨へ
にほんブログ村

Transaction feeをケチると認証されない件

Bitcoinの送信でtx feeを0.00001BTCにして成功したことがあったので、何度か同じように試してみたが失敗することがあったので調べてみた。

Transaction fees - Bitcoin Wiki

Sending A transaction may be safely sent without fees if these conditions are met:

  • It is smaller than 1,000 bytes.
  • All outputs are 0.01 BTC or larger.
  • Its priority is large enough (see the Technical Info section below)

つまり、以下の条件のときはtx feeなしで成功するかも、とのこと。

  • 1,000バイトより少ない
  • 出力が 0.01 BTCより多い
  • プライオリティが十分に高い

3つ目が分かりにくいが、以下の計算式で求められるとのこと。

priority = sum(input_value_in_base_units * input_age)/size_in_bytes

例として、入力が次の2つ、10 confirmationsの5 BTCが1つと、3 confirmationsの2 BTCのときで、出力サイズが500バイトだとすると、プライオリティは以下の計算式となるようだ。

(500000000 * 10 + 200000000 * 3) / 500 = 11,200,000

要は額が大きくて、長いこと移動されていないコインはプライオリティが高いということだろう。

Otherwise, the reference implementation will round up the transaction size to the next thousand bytes and add a fee of 0.1 mBTC (0.0001 BTC) per thousand bytes[1].

つまり、上記の3つの条件が揃わないときは1,000バイト毎に0.0001 BTCをtx feeとして渡さないとうまくいかないようだ。

にほんブログ村 その他生活ブログ 仮想通貨へ
にほんブログ村