日本時間2014/05/25 午後3時にローンチされた仮想通貨「Ringo」の情報まとめWikiです。導入から運用まで。出ている情報を一通り纏めていきます。

コンピュータ間でのWalletの移行方法

 RingoはPoS採掘の基準として、自分のweightや取引内容をチェックしています。
 このため、古いコンピュータから新しいコンピュータへのデータの移行を【送金】で済ませてしまうと、損をします。
 実際に移行する前に、予習をしましょう。

実例

 例えば、このような残高・取引がwalletでPoS対象になっていたとします。各々のアドレスは1回しか入金を受けていないとします。
アドレスA+1000Rin320ブロック経過
アドレスB+2000Rin500ブロック経過
アドレスC+7000Rin1000ブロック経過
 この場合、360ブロック経過していないアドレスAは別(weightがゼロ)として、アドレスBは140、アドレスCは640の基礎weight(時間として。実際にはおそらく残高との乗算もあると思われるが割愛)が存在します。
 これらをまとめて新しいコンピュータへ送信したらどうなるでしょうか。
 手数料はゼロとして考えます。
新アドレスD+10000Rinブロック経過なし(承認中)
 これで、せっかくの基礎weightはゼロになってしまいました。
 時間経過すれば回復するといえばその通りなのですが、ここには落とし穴があります。
  • メリット
    • 1取引(アドレスではない)の額が大きいので、PoS採掘にHitする可能性は従来より高い傾向になる(喪失したweightは考慮しないとする)
  • デメリット
    • せっかく積み上げたweightをゼロにしてしまった
    • 取引が1つしかないので、10000RinのPoSがヒットしても、6時間は確実にPoS採掘から弾かれる

つまりどういうことか

 RingoのPoS採掘は「アドレス単位」ではなく「取引単位」(実質的にブロック単位)で計算されています。オプションからコインコントロールを表示するようにして、送金画面から確認すると、入金のたびに同じウォレットでも、別ブロックとして記帳されているのが分かります。
 せっかく3つのブロックがあり、どれもいずれPoSの対象になるはずなのに、まとめたことでweightがリセットされてしまいました。
 また、それにより、時間経過での10000Rinを対象としたPoSはヒットしやすくなった反面、一度ヒットしてしまうと6時間は報酬の対象から外されてしまいます。
 つまり、損をしてしまっている可能性が高いということになります。
 言葉で説明しても難しいので、分かりやすくするために簡易グラフを用意しました。

 細かい計算は端折っています。ネットワークのweightが常に一定であると考え、アドレスAからDは上記条件、10000Rinがおよそ24時間ごとに1回PoS採掘できると考えた場合のPoSの期待を示した図です。
 PoS採掘による手持ちの増加は単純さ優先のため考慮しないとする(手持ちは一定)。最初の6時間は対象外なのですべてゼロ。すべて同じタイミングで処理をした場合です。
 この図の場合、おおよそアドレスDの横線が伸びる位置より上が「毎日PoSが来る」ボーダーであると考えます。そこより上の場合は、24時間に1回以上のPoS採掘が見込めます。
 アドレスABC合算と、D、Eはすべて同じRin数(10000Rin)と考慮し、アドレスEは5000Rinを2つのトランザクション(取引)に分割して受け取っていると仮定しています。
 精密かつ時間単位での計算ではないのでズレはありますが、目安程度にはなるはずです。

 グラフから見て分かる通り、細かい取引を合算した線(水色)は、振れ幅は大きいものの、まとまって数回PoSが発生する機会がありそうです。ただし、タイミングによってはまったく来ない日が続くことも示唆しています。(このグラフでの水色線は、あくまで合算した期待を示しているだけ)
 まとめて1トランザクションとした緑のD線は、一応毎日近くPoSが来る(実際は24時間+6時間なので30時間ごと)。
 資産を半分ずつに分けて5000×2としたEは、まとめて持っているより期待は下がりますが、しかし片方が成功しても片方が残るため、総合的な期待値は少し高め。(気持ち程度)
 ちゃんとしたグラフなら緑と茶色はちょっと上下するのですが、概要ということでそこは勘弁してください。

 これらのデータは「同じタイミングで処理した」ことを前提で作っていますが、実際にはそんなことは有り得ないし、ネットワークweightは変動しますから、あくまで参考程度です。
 ですが、分割して持っていることの意味は、なんとなく掴めて頂けたと思います。
 ただし、あまりにも細かく分割させ過ぎた場合は、weightの上がりが遅くなることも考慮しなくてはなりません。
 Wiki管理者@0時の計算によると、ネットワークweightが5億以下なら5000〜10000Rin程度に分割して所持しておくのが最も効率的ではないかという結論に至っています。

では実際にマシン間でのデータ移動はどうすれば良いのか。

最もシンプルな方法は、wallet.datをそのまま新しいマシンのWalletに突っ込むだけ。
 これならば所持しているRinのweightを損ねることなく、アドレスや残高をそのまままるっと移行できます。
 ※Walletの移動は、必ず!ウォレットが完全に終了してから行うこと!
 稼働中にコピーを行うと、排他処理等の影響で、不完全だったりおかしなデータをコピーしてしまう恐れがあります。
 必ずウォレットを停止してから実施すること!
また、移行元(古いマシン)のウォレットは削除し、以降は旧データのままで使用しないようにすること。
 もし、何かの拍子に同時に処理が発生した場合、取引エラーになったり整合性がとれなくなる等、深刻な症状が発生する恐れがあります。
 理屈上はそういうことは起き難いはずですが、万が一取引がおかしくなった時、取り返す・取り消す手段がありません。安全のほうに振っておいて損は無いはずです。

 同期に時間がかかるのは嫌だなぁ、という時は、Ringoのユーザーデータディレクトリを、新しいマシンへまるごとコピーするのもアリです。
(Windowsの場合、インストールまでページの、ブートストラップを設置する場所の中身、すべてです。一部だけにすると、ブロック情報の整合がとれない、とエラーになってしまいます。)

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

メンバーのみ編集できます

メンバー募集!
閉じる
スパム対策実施中
ページへのスパム投稿が発生しているため、書き込み・編集権限をメンバー参加者に設定しています。
編集を行いたい場合、ログイン後にメンバー参加申請をお願いします。