2018年8月29日水曜日

[Bitcoin]bitcoindをregtestでたちあげてgenerateを繰り返しているとだんだんgenerateの時間が遅くなる

表題の通りのことがおこります。

checkblockindex=0
のオプションを指定してあげるとblock数が増えてもgenerateの時間は増えません。


bitcoin.conf 例



このオプションは、bitcoind --help -help-debug で確認できます。
regtestの場合、デフォルトはcheckblockindexがtrueになっており、regtestの場合のみblockが積み上がるたびにGenesisブロックから不正なデータがないかをチェックする処理が実行されるようです。

bitcoinのソースコードはこのへん↓↓
CheckBlockIndex




2018年4月8日日曜日

将棋勉強 2018/04/07

内容
7手詰ハンドブックⅡNo.9〜No.12

2018年4月2日月曜日

詰将棋 2018/04/02

7手詰です。
将棋ウォーズ で似たような局面になったものを詰将棋にしてみました。










持ち駒なしですが駒を取りながらで詰ますことができます。

図面はShogipic様で作らせていただきました。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]


最近よくやっている↑ この本のおかげで勝てたかも!?

2018年3月22日木曜日

詰将棋 2018/03/22

5手詰です。
将棋ウォーズ で似たような局面になったものを詰将棋にしてみました。














図面はShogipic様で作らせていただきました。


2018年3月7日水曜日

詰将棋 2018/03/07

9手詰です。

将棋ウォーズ で似たような局面になったものを詰将棋にしてみました。









図面はShogipic様で作らせていただきました。


詰将棋 2018/03/07

5手詰です。


将棋ウォーズ で似たような局面になったものを詰将棋にしてみました。







図面はShogipic様で作らせていただきました。




[Blockchain]任意のScriptをP2SHにしてmonaを送ってそれを取り戻す

locking Script(scriptPubKey)



unlocking Script(scriptSig)


こういう任意のScriptをトランザクションに刻んでみたいとおもいます。
testnetだとそのまま実行できるのですが、mainnetだとNon standardということで送信すらさせてもらえません。
そこで

P2SH(Pay-to-Script-Hash)

なわけです。


こんな形式になります。
答えは一般的には

こんな形になるので
こうなります。

Monacoinのトランザクションを送信するプログラムで書いてみます。
トランザクションの組み立てはbitcoin-rubyが使えます。

プログラム


実行結果

成功しました!

send_easy_script_transaction

P2SHで送ったトランザクション voutの0番目にご注目ください。

easy_script_unlock_transaction 

↑のトランザクションのmonaを取り戻したトランザクション(手数料分引かれるのですけどね)
vinにご注目ください。

Transaction 4a5b63b47015c760353c1df3b35fe13d752e09522e77dd21f101c4b466997ac1


手数料の計算適当なので良い子はまねしないでください笑
永遠に取り出せなくなる(だれにもブロックにいれてもらえない)ことになる可能性があります。
UTXOはそもそも額が小さいものが選ばれるようにして、無くなっても後悔しない額でお試しください。