6502tinymachines

装置

hotbits は放射性崩壊から得る真の乱数バイトだ。装置は、CAJOE RadiationD-v1.1 カウンター基板の SBM-20 ガイガー管に密封されたトリウム校正カードを当てたもので、検出されたイベントすべてに Raspberry Pi 4 がタイムスタンプを打つ。管より下流はすべて帳簿付けにすぎない。原子核が崩壊した後に、乱数性を足すものは何も無い。

端から端までの連鎖:

段階何が起きるかどこで
崩壊Th-232 系列の原子核が崩壊し、管が放電するカードと管
パルス基板の NE555 が放電を綺麗なエッジに整形するカウンター基板
タイムスタンプPi がエッジを単調ナノ秒値ひとつとして記録するlogger.py、イベントごとに 1 行、追記のみ
ビットイベント間の間隔をペアで比較し、ペアごとに 1 ビットextract_stream.py、毎分
健全性新しいビットが連続テストを通るか、さもなくばプールが給仕を拒む同じ処理の中で。健全性テストを参照
プール新鮮なバイトが、消費水位を持つ追記専用ファイルに溜まるAPI のプール
ゲートウェイ鍵がバイトを消費する。シードと再生は開放のままゲートウェイ

線源が何か珍しいものではなくトリウムカードであることには、記録しておく価値のある理由がある。永続平衡にある Th-232 は崩壊系列まるごとであり、六つのアルファ崩壊核種といくつかのベータ崩壊核種が、すべて独立に崩壊しながら一本の管で合算される。独立なポアソン過程の和はやはりポアソン過程であり、それこそが ビットの抽出が必要とする唯一の性質だ。

このサイトのどこにあるか

ページは二つあり、どちらも装置について断言する代わりに、装置に問い合わせる。 /ja/hotbits は読み込まれた時に、稼働中のサービスからバイトプールと健全性の判定を読む。/ja/hotbits/api はサービス自身の openapi.json を描画した上で、そこに書かれたルートをすべて呼び出す。だからリファレンスは「応答すべきだ」と主張する代わりに、どのルートがいま応答しているかを言える。

このツリーが扱う範囲と、扱わない範囲

ここにあるページは、ここから検証できる部分を扱う。抽出と健全性テストは装置のソースツリーから読んで書かれ、ゲートウェイの挙動は呼び出して測られる。二つのものは意図的に書き写していない:

  • ベンチ。 接地、オシロスコープでの作業、筐体の履歴、部品表は装置自身の リポジトリにある。あれは実験ノートであり、実験ノートの書き写しは、それが真実であることをやめる方法だ。
  • ゲートウェイの内部。 鍵の発行とバイト予算の管理はゲートウェイを動かす 機械の上にあり、そのソースはこのサイトがビルドするツリーには無い。 ゲートウェイのページは、サービスが観測できる振る舞いを文書化し、観測がすべてである箇所ではそう述べる。