週次オープンソース:ClawdWallet、univdreams、origami、pure-Go 署名
横方向に広がった週。Solana ウォレットが公開され、汎用デコンパイラ/ コンパイラが最初の crate を出し、突然分子動力学エンジンが現れ、 Windows コード署名が Pure-Go で組み直された。
ClawdWallet:TibaneLabs が公開
TibaneLabs は新しい org。 フラッグシップは Solana Seeker 向けのノンカストディアル ウォレットで、マルチチェーン(Solana / EVM / Bitcoin)、MPC キー、 DEX アグリゲータ swap、dApp ブラウザ付き。今週、Colosseum ハッカソン への TibaneLabs のエントリとして、二つの部品でオープンソース化 された。
TibaneApp は Flutter のフロントエンド。ビルド 39 が「Initial open-source release」で、その後 1 週間で:WatchAsset 承認シート、NFT ビューア + トークン CRUD 画面、BTC アドレス形式ピッカー、swap 周りの 仕上げ(出力トークン自動追跡、USD 表示)、ステーキング詳細 (コピー可能アドレス)、About 画面に libwallet バージョン表示、 URL バー非 URL 入力の DuckDuckGo フォールバック、GB ユーザー向け の UK リージョンゲート(swap / staking 非表示)まで載った。
clawdwallet は Go
で書かれたエージェント CLI:TSS-over-Spot、Solana TX 構築、x402、
MCP stdio。週半ばに「ClawdWallet Stage 1」用にリファクタ — エージェント
ペアリングのディープリンク、peer JSON タグを tss-lib protobuf に
合わせる、REST クライアントを Crypto/WalletSign:signByPolicy
経由に、tibane:// URL スキーム(ターミナルで Unicode QR として
表示)でペアリングハンドシェイク。
libwallet 側も
それに合わせて API を増やした:v0.4.21 → v0.4.32 で
Wallet:initiateKeygen + Wallet:joinSign、ClawdWallet:pair
(Stage 1 ディープリンク検証)、ClawdWallet:createAgentWallet、
Helius DAS 経由の Solana SPL 自動検出、wltswap の改善(プロバイダ
ごとの quote 試行、Jupiter quote 失敗時のリトライ)、契約ラベル
の curated レジストリ、Network.AddressUrl + 解決済みブロック
エクスプローラ、maxSendable を estimateGas + Amount.MAX
センチネルに切り替え。
univdreams:汎用デコンパイラ/コンパイラ
univdreams —
「ELF / PE / Mach-O / 6502 を、人が読める .ud ソース言語を
通してバイト同一で往復させる」が、今週最初の crates.io
リリースを刻んだ(v0.1.0 → 0.1.3、日曜時点)。
由来は「容器を超えて育ったコード」だ。エミュレータとバイナリ
解析の機構はもともと oxideav-vfw の中で育っていたが、
「Video for Windows のシム」と呼ぶには大きくなり過ぎた。今週、
コードはこのワークスペースに切り出され、oxideav-vfw のほう
が ud-* crate に依存する側になった。
切り出し後の構成:
ud-format— PE / ELF / Mach-O / raw の統一フロントエンド (PE は DOS + optional ヘッダを構造化フィールドにパースして、from_partsでバイト同一にリビルド)。ud-translate— compile + decompile(古いud-compile/ud-decompileをマージしたもの)。arch-x86— RIP 相対エンコード、nop [mem]、push imm、 間接 call / jmp 対応のアセンブラ/ディスアセンブラ。ud-emulator— Pure-Rust i386 + PE + Win32 エミュレータ (oxideav-vfwの中にあった部分そのもの)。コーデック コーパスのハーネス:実 DLL(Lagarith / MagicYUV)に対するICOpenトレースプローブ、ud encode/ud decodeから 叩くICCompress/ICDecompress。kernel32 / msvcrt スタブ、 序数インポート解決、FWAIT、Sandbox の上に FFI 風の Guest レイヤ。ud-cli—ud analyzeはサンドボックスで PE32 DLL を走らせて 命令予算 + JSON 解析レポートを出す。コーデック調査用にud vfw …名前空間。
切り出したことで、隣接モジュールの形を歪めずに育てられるよう
になり、副産物として VfW 以外の用途も自然に手に入った:任意の
PE / ELF / Mach-O バイナリを対象にした汎用デコンパイラ、そして
往復可能な .ud ソース言語。
origami:Rust の分子動力学
origami が今週 ふいに現れた。Rust によるレプリカ交換分子動力学(REMD)で、 実物のフィクスチャに対して実際にフォールド試行を走らせて いる。
1 週間で出てきた見出し:
- Chignolin — REMD で 1.43 Å Cα RMSD。プロジェクトの過去 最良。
- Trp-cage — 3.31 Å Cα RMSD。Trp-cage の最良フォールド。
- Villin — 1 ns × 8 レプリカで 6.14 Å、5 ns × 8 レプリカ の長い走りで 4.25 Å min。
- インスリン(2HIU) — chain-aware
Structure型を用意して マルチチェーンフォールド試行を配線。 - Crambin(1CRN) — フィクスチャ + ジスルフィド結合を覆う native-MD 受け入れテスト。
支える機構:Kabsch-Sander DSSP の H 結合判定(Ramachandran
フォールバック付き)、origami analyze の残基ごとの二次構造、
凝集型 single-linkage トラジェクトリクラスタリング(クラスタ
ごとに代表 PDB 1 本を書き出し)、SHAKE で X-H 制約 → dt =
2 fs で 2 倍のスループット、SoA ノンボンドカーネルと SASA /
GB Born 半径積分の Verlet 隣接リストキャッシュ(SASA 力は
5.3 倍)、rayon 並列 REMD(コア利用率 5-6 倍)。RNA 側も
入った:Nucleotide 型と base ごとの原子トポロジ、RNA 対応の
PDB リーダ、NeRF 拡張の RNA バックボーン + リボース鎖
ビルダ。
これは個人的な興味で進めているプロジェクト。DNA は機械語の ように読める、と長らく思っていた。タンパク質はその DNA が 組み立てる側の出力で、出力を理解しないことには、いずれ DNA そのものをいじるところには行けない。
authenticode + gosigner:Pure-Go Windows 署名
Windows PE ファイル署名のために長年使われていた
osslsigncode シェルアウトを、二つの新 repo で置き換えた。
authenticode
はライブラリ:Pure-Go の Authenticode PE 署名で、
osslsigncode と等価な SignerInfo 属性、optional ヘッダの
CheckSum 計算、SPC_RFC3161_OBJID の下に TSA トークンを
入れ子、CI には fuzz + TSA スタブ + 署名マトリクスのテスト
スイート。
gosigner はリモート
署名側:Spot 越しに hsm.Key + authenticode を組み合わせ、
signreq -name / -url フラグで SpcSpOpusInfo のプログラム名
+ URL を流し込む。署名デーモンは osslsigncode を呼ばなく
なった——すべてのバイトが crypto.Signer + encoding/asn1
を通る。
goro:VM 正しさ + パフォーマンス
W19 に着地した VM が、今週は PHP の現実のエッジケースに追いつく
週になった。コミットは新しい op、ファストパス、そしてリグレッ
ション群(PHP のバグ番号 bug53511、bug26639、bug60598、
bug79784 など)が浮き彫りにする個別バグの修正の混合。
- AST デリゲートフォールバック — 未知の callee で書き換え
可能引数を持つ関数呼び出し、
NoDiscard付きの式文、書き 換え可能引数の間接呼び出し、参照代入($b = &$a)。 - スロット安全性解析 — 型付き return、
include/require/eval、class constアクセスがある関数本体を スロット安全外とマーク。arraySetLocalで外部スロット変更 を検出。 - バグ駆動修正 — catch 変数の再バインドで
__destruct発火(bug53511)、ローカル代入で新規 ZVal を確保(bug26639)、IterateRaw内とFuncContext.Releaseでハッシュ値を Dup しない(bug60598)。 - ファストパス —
OpDiv/OpMod/OpBitAnd/Or/Xor/OpShl/OpShrの int-int パス、OpJmpIf{False,True,FalsePeek}の bool パス。 - 境界での型チェック — オブジェクト / 配列のビット演算
オペランド、配列キー、数値でない文字列オフセットキーで
TypeError。文字列コンテナの数値文字列オフセットを int に 変換。未初期化ローカルへの++/--で未定義変数警告。foreachイテレータを多段 break / continue でアンワインド。
今週その他
- minlz-rs v1.1.0
—
klauspost/compress/s2の手書きアセンブリ (encodeBlockAsm{8B,10B,12B,4MB})の残りを Rust に移植 完了。移植中に正確性バグ 2 件を発見。README に Rust と Go の正直な単一スレッド比較。 - oxideav-vfw — state surface + forensics を r70 まで。今は切り出された univdreams ワークスペースの ud-emulator を取り込む形になった (上記)。
- oxideav-av1、 vp9、 h264、 h266 — エン コーダラウンド継続。
- oxideav-aac、 oxideav-cinepak、 oxideav-audio-filter、 oxideav-image-filter — 細かい改善。
- oxideav-mov — QuickTime コンテナ、今週入った。
- oxideav-fbx — Autodesk FBX。W19 で入った 3D アセット sibling 群に合流。
- oxideav-gif — GIF も入った。
来週
ClawdWallet のペアリングフローを実機経由で通しで動かす。 univdreams は VfW のコーデックデコードに継続投入。origami は もう一段難しいフォールドターゲットに向ける。