2019年6月11日

メモ:CentOS 7でInsight用のbitcoind系をコンパイルする呪文(./configure オプション)

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

./configure CXXFLAGS='-O2 -D_FORTIFY_SOURCE=2 --param ggc-min-expand=1 --param ggc-min-heapsize=32768' --disable-gui-tests --disable-bench --without-gui --disable-wallet --with-boost-libdir=/usr/local/lib

CXXFLAGSの説明

  • O2:最適化
  • D_FORTIFY_SOURCE=2:メモリあふれ検出をON(最適化と同時に指定)
  • ggc-min-expand、ggc-min-heapsize:メモリ使用量を減らす(VPSでコンパイルしているため)

オプションの説明

  • disable-gui-tests:GUI(qt)テストをビルドしない
  • disable-bench:ベンチマークをビルドしない
  • without-gui:GUI(qt)をビルドしない
  • disable-wallet:ウォレット機能を無効にする(Insightに必要なネットワークとフルブロックノードのみ使用する)
  • with-boost-libdir=/usr/local/lib:OSのBoostだとバージョンが合わないのでカスタムビルドしたものを突っ込んであるディレクトリを指定

2019年3月 8日

件のJavaScriptに対抗する防衛(?)JavaScript

半分ネタ。件のJavaScriptとは以下の記事を参照。

【??危険なプログラム??】"何回閉じても無駄ですよ?"と無限にアラートを出すサイトのコードを添削してみた。 - Qiita

内容としてはwhile(true)window.alert()を呼び出し続けている。

Firefox等では繰り返しalertを呼ぶと「もう表示しない」みたいなチェックボックスが出て止めることができるらしい(昔はChromeもできたような記憶がある)。
しかし、少なくとも今試したらChromeではタブを閉じない限りDevToolsも開けない。

ということで意味もなく(?)無限ループを止められるようにしてみた。

    window.alert = function(msg){
        if (!window.DISABLE_ALERT){
            if (!window.confirm(msg)){
                window.DISABLE_ALERT = true;
            }
        }else{
            throw new Error("alert diabled: this is not true Error.");
        }
    }

グローバル変数使ってるあたりあまりよろしくない気もするけど、これでもし無限alertを食らってもキャンセルをクリックすれば例外を投げてwhileを抜けることが可能。

そのままだと全てのalertが無効になってしまうので、DevTools等でwindow.DISABLE_ALERTfalse/null/undefinedに戻せばOK。

これをTampermonkey等で全てのページで読み込むようにしておけば、もう無限alertを恐れることはない!
...うっかり普通の(無限じゃない)alertでキャンセルをクリックして「あ゛ぁぁ」ってなってしまう未来が見えるけど気にしない。

2019年1月23日

[Windows 10]言語の同期に要注意?

時間が無いので手短に。

経緯

  • あるPC(Aとする)でキーボードレイアウトが英語に
  • しかしデバイスマネージャやハードウェアキーボードレイアウトは日本語
  • 調べてみるとIMEが消失(MS IMEがない)

原因

どうも言語設定の同期が原因らしい。
別のPC(Bとする)ではATOKを使っているけど、しょっちゅうMS IMEに戻るので鬱陶しくてMS IME自体を削除していた。
これがAに同期された結果、AにはATOKがないので強制的に英語にフォールバックしていたのかもしれない。

逆にA→Bの同期がかかった結果として、BでMS IMEに戻る現象が発生していたのかも。
いずれも推測の域を出ないけど...。

解決策

AにMS IMEを追加し、言語設定の同期をオフにした。しばらく様子見。

2018年12月25日

XPChain チェインパラメータメモ(0.17.0)

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

https://github.com/xpc-wg/xpchain/blob/1c1845a3276e176f70ab09b3ac7dc904f542e873/src/chainparams.cpp

主にinsight/explorerやSPV(軽量ウォレット)とかで使うものを中心に
ABPoS(minting/stake)関連を弄らないのであれば、bitcoinライブラリにこれらの値を入れれば動くはず

メインネット

  • P2Pポート:8798
  • RPCポート:8762
  • メッセージマジックバイト:0xfc,0x87,0xba,0xc0
  • Genesisブロック
    • ハッシュ:0x000000009f4a28557aad6be5910c39d40e8a44e596d5ad485a9e4a7d4d72937c
    • マークルルート:0xdaa610662c202dd51c892e6ff17ac1812a3ddcb998ec4923a3a315c409019739
    BASE58プレフィックス
    • 公開鍵:76 (0x4c)
    • script:28 (0x1c)
    • 秘密鍵:128 (0x80)
    • 拡張公開鍵:0x04, 0x88, 0xB2, 0x1E
    • 拡張秘密鍵:0x04, 0x88, 0xAD, 0xE4
  • bech32 HRP:"xpc"
  • チェックポイント:
    10275ブロック目=0x000000005a940193bddee51f6c649d3db5d14086201e856b0c8049f625e8e6b7

テストネット(testnet2)

  • P2Pポート:18798
  • RPCポート:18762
  • メッセージマジックバイト:0xfc,0x87,0xbb,0xc1
  • Genesisブロック
    • ハッシュ:0x00000000f04d3bdebf907f79b4b096a05d763ac890612202ff9c9cc685221617
    • マークルルート:0xdaa610662c202dd51c892e6ff17ac1812a3ddcb998ec4923a3a315c409019739
    BASE58プレフィックス
    • 公開鍵:138 (8a)
    • script:88 (58)
    • 秘密鍵:239 (ef)
    • 拡張公開鍵:0x04, 0x35, 0x87, 0xCF
    • 拡張秘密鍵:0x04, 0x35, 0x83, 0x94
  • bech32 HRP:"txpc"
  • チェックポイント:なし

共通

  • シートホスト:seed1.xpchain.io~seed3.xpchain.io
  • POW→POS切り替え:10275ブロック

2018年12月24日

【超辛口】XPChain( $XPC )エアドロップ受取方法【ネタです】

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

※以下の記事は口調・内容含め全てネタです。苦情は受け付けません。
(一応手順自体は間違っていないはずですが...)


さーてXPChainがリリースされたぞ。
ということでエアドロップの受け取り方を教えよう。

  1. 申請時のXP、メールアドレスを用意
    なに?申請してない?ならタイムマシンを発明してくるんだ。できなければGOX!

  2. Windows 10 PCにUbuntu WSL 18.04をインストール
    Windowsじゃない?GOX!
    Ubuntuの入れ方が分からない?GOX!

  3. XPChain公式のGitHubからソースをgit cloneだ
    Gitの入れ方がわからない?GOX!

  4. cloneしたディレクトリのdoc/build-windows.mdを読んで良い感じにdependencyを入れるんだ
    出来なければGOX!

  5. どうせなら独自のクライアント名にしてみよう
    src/clientversion.cppをvi(vim)以外で開いてCLIENT_NAMEを書き換えるんだ
    そうだな...例えばShigeruとかKasumiとかTakeshiとかな。
    出来なければGOX! vi(vim)使ってもGOX!
    viは敵!rm /usr/bin/vi!rm /usr/bin/vim!

  6. doc/build-windows.mdを読んでmakeだ
    そしてできたqtのexeを取り出すんだ
    ちなみにUbuntuの場所は「%userprofile%\appdata\local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs」だ(これは分かりづらいのでヒント)
    /mnt/c経由でコピーしてもいいぞ
    どこかで失敗したらもちろんGOOOOOOOOOOOOOOOX!

  7. qtを起動してアドレスを作るんだ
    segwitのbech32以外を作ったらGOX!

  8. XPChain 公式サイトの「GO TO AIRDROP」からフォームに飛び、必要な事項を入力するんだ
    手順書見るとかぬるいことやってたらGOX!

  9. メールが届くからリンクを開くんだ
    メールが届かなかったらGOX!
    迷惑メールに紛れてしまったらGOX!

  10. クイズに答えてアメリカ一周...じゃなくてXPCをもらうんだ
    高負荷時はADMC301エラーが出るけど焦らない焦らない
    クイズに間違えた?GOX!

  11. ヒャッハー!ついにXPCゲットだぜ!
    届いてなければGOX!
    承認に時間がかかるけどじっと耐えるんだ

  12. 後はstakeするなりtipするなりrainするなりGOXするなり好きにするがよい!

ネタだけだと酷いので、一応フォロー。
おこめさんが分かりやすい説明を書いてくれてるのでそっちを見てね。

【仮想通貨】XPCのエアドロップをもらう方法|おこめブログ

2018年11月16日

$XPC テストネットを遊び倒し中

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

暗号通貨eXPerience Chain(XPChain、XPC)、Discord上で使えるウォレットbotやInsightも公開されて、ますます楽しくなってきた。

私は技術系オタクだから、暗号のコードとか見るとちょっと(かなり)わくわくする。
XPC自体の活用アイデアとかはあまり出てこないけど...まあ、まだテストネットなので慌てない慌てない。

ということでテストネットだからこそということで、いろいろ弄って遊び倒す。
ある意味これもXPCの活用(?)かもしれない。

RPCコマンドを使ったrainもどきとかトランザクションの生成→署名→送信あたりはやったので、いよいよウォレットの外(Bitcoin系のライブラリとInsight)でいろいろやっていきたい。
と、その前に、アドレスや秘密鍵の関係を把握しておくことに。

※以下、XPC固有というわけではなく、Bitcoin 0.17~系にほぼ共通のはず(そもそもソースがBitcoinからフォークしてるので、ブロック構造とか使ってる暗号技術とかほほ同じのため)

※あくまで私が弄るために集めた最小限の知識やコードしか書いてないので、必ず他のサイトも参考にすること

※以下、バイト列はhex表記(ef0102dc...等)とする

2018年11月13日

$XPC テストネット始動

  • 投稿日:
  • by
  • カテゴリ:
  • コメント: 0件

コミュニティに参加・応援してる暗号通貨XPC(XPChain)のテストネットがついに公開。

XPChain Official Web(公式サイト、テストネット用ウォレットもここからDL可能)

このブログのblogchainはすっかりstallしてしまってるけど、XPCのほうはやや遅れながらも順調に進んでるっぽい。
開発体制にやや不明瞭なところはあるけど、その辺も含めしかるべき時がくればいろいろと明らかにされると思うので、今はじっと待つ。

とはいえテストネットが公開されていろいろ弄ることができるので、RPCで大量に投げたり1XPCずつの1475txの塊(元気玉)を返却したりと遊んでる。た~のし~♪
(通知が来るのをすっかり失念して10XPC爆撃してしまった件に関しては申し訳ない)

メインネットが公開された暁には、cvmu.jpにてノードをホスティング予定。
あとはRubyとかC#(VB?)で軽量ウォレット作ってみたりとかしたいけど、まだちょっとBitcoinやブロックチェーン関係の知識が足りなさそうなので少しずつ。

2018年10月21日

SSL証明書更新に失敗しかけたけどさくらに助けられた件

異世界に転生して...じゃなくて。

※没りそうになったので当初予定の9割削減でお送りしております。

  • Symantecがやらかしたせいで証明書更新が必要になった
  • その時の私の環境
    さくらインターネット(以下さくら)で以下の契約をしていた
    • レンタルサーバ:mcrn.jpに割り当て
    • VPS:cvmu.jpに割り当て
    • SSL証明書:上記2つそれぞれにラピッドSSLで用意
      mcrnは手動プラン、cvmuはレンタルサーバ用自動プラン
  • さくらではSSL証明書は2回更新が必要だった
    • 1回目の時は無事更新成功
    • 2回目の前に、諸事情でcvmu.jpをレンタルサーバからVPSに移行
      その際に、Let'sEncryptに失敗し、面倒なので期限の残ってたSSL証明書を引っこ抜いて流用
  • 2回目の通知が来たとき、それをすっかり忘れてcvmuの分を更新手続きし、放置
    • 当然レンタルサーバではなくなっているので自動で進むはずがない
    • 手続き後、すぐにレンタルサーバ側から認証ファイルをVPSに移動していれば問題なかったはず
  • 先日「まだ更新されてないよ、このままだとChrome70でエラーが」的なメールが来て気付く
    • 慌てて認証ファイルを移動するも当然時間切れ(変化なし)

で、ダメ元でさくらのサポートに連絡したら、認証局に連絡して新しい認証ファイル発行してもらい、無事更新完了した。

どう考えてもこっちの落ち度なのに対応してくれたし、かなりスムーズだった。
もしかして結構こういうユーザーいるのかな...?

2018年9月10日

ローソン、これはあかんで...

  • 投稿日:
  • by

ローソンID会員様へのアカウントメールアドレス・パスワード再設定のお願い|ローソン

要約すると

  • 他サイトから流出したパスワードで攻撃されてる(攻撃成功率などは不明)
  • 全会員のパスワード強制リセット
  • みんな一斉に再設定しようとしてシステムオーバーロード←今ここ

もうどこから突っ込んでいいやら。

そもそも、「自サイトから流出した場合」を除いて運営側の強制全リセットは悪手だと思う。
特に、手間とか負荷よりも、信頼を失わせるのが一番ダメポイント。
強制パスワードリセットは流出を起こした側が実施するものなので、「リセットした」→「ローソンからパスワード流出!?」と勘違いしてしまう(実際私もこれを疑った、というより今でも疑っている)

大量に攻撃されていてもログイン成功しなければ無視すれば良いし、成功していれば該当ユーザーのみ強制リセットすればいい。
たとえ該当ユーザーが99%いたとしても、残りの1%はリセットすべきじゃない。

そして何より怖いのは、これが他のサービスでも行われ始めたらもう地獄。
実際に不正ログインできなくても、デタラメなパスワードでログイン試行DDoSするだけで、サービス運営側が勝手に自爆してくれるのでクラッカー大喜び。

これが歴史上最初で最後になることを祈る...。

2018年7月 1日

SSL証明書また更新

最近Twitterで済ませることが多くなってきて、ほぼ休止状態のブログ。

今回のも小ネタだしTwitterで済ませようかな...とも思ったけど、わざわざ有料SSL契約してるのに使わない(使わせない?)のはもったいないのでブログに。

Symatecの証明書がGoogleに無効化された件で、一度更新したはずの証明書、実はまだダメだったためもう一度更新してってメールがさくらから届いた。

...うん、知ってた。Impressの記事で読んで「あ~、これもう一回くるな~」って思ってた。

まあ、面倒がってても仕方ないのでさくっと更新。この記事を書いてる時点でmcrn.jpは既に更新済み、cvmu.jpはRSプランなのでさくら側の作業待ち。

今回の更新でルートCAがGeoTrustからDigiCertに変わった。見てる側には何の影響もないけど。