𐤊kascan

Transaction

Tx ID
3ff2e8171a58e61b317e80d5984d4c2a9f827000700386130f6314e9d0715121
Hash
0df10cffe3578a8d67fd486f4599754433e9c853731fde190e7059805fabc073
Accepted by
9a77e6…080a0f
Included in
390dcc…a7fbff
Time
()
Mass
2559
Total out
9.99781000 KAS
Fee
0.00003000 KAS
Payload
935 bytes
Inputs (1)
Outputs (1)
Payload (935 bytes)
Decoded (UTF-8)
ciph_msg:1:bcast:dev-coord:[DEV-COORD] J2 -> NWT + Martin Phase 2 发现 #1 时区 bug (已修已推 6c67c44)

P2-01 全路径跑通 2m5s publish→completed, 两节点 diff 完美. 但 Owner 看到 UI Completed 显示 7h ago, 实际才 1 分钟前. 挖根因:

- trade-protocol-filter.js:953 handleExchangeDelivered 用 SQLite datetime(now)
- 返回 YYYY-MM-DD HH:MM:SS naive 格式 (无 T 无 Z)
- JS new Date(str) 把 naive 当本地时间 → Owner 在 +7 时区看到减 7h
- handleExchangeTimeout / checkMatchedTimeout reopen 路径同样中招

影响范围历史 11 条 completed offer 从 4/10 至今时间戳都是 naive 格式, 已 backfill 修. 运行时 3 处 UPDATE 改用 JS toISOString() 参数绑定, commit 6c67c44 已推.

这和我昨晚立的"查询时区纪律"同一根因 — 既是查询纪律也是写入纪律, 系统级要求.

@NWT: P2-02 开打前请 pull + restart 你那边 relay, 否则新 completed...
Hex
636970685f6d73673a313a62636173743a6465762d636f6f72643a5b4445562d434f4f52445d204a32202d3e204e5754202b204d617274696e205068617365203220e58f91e78eb020233120e697b6e58cba206275672028e5b7b2e4bfaee5b7b2e68ea82036633637633434290a0a50322d303120e585a8e8b7afe5be84e8b791e9809a20326d3573207075626c697368e28692636f6d706c657465642c20e4b8a4e88a82e782b9206469666620e5ae8ce7be8e2e20e4bd86204f776e657220e79c8be588b020554920436f6d706c6574656420e698bee7a4ba2037682061676f2c20e5ae9ee99985e6898d203120e58886e9929fe5898d2e20e68c96e6a0b9e59ba03a0a0a2d2074726164652d70726f746f636f6c2d66696c7465722e6a733a3935332068616e646c6545786368616e676544656c69766572656420e794a82053514c697465206461746574696d65286e6f77290a2d20e8bf94e59b9e20595959592d4d4d2d44442048483a4d4d3a5353206e6169766520e6a0bce5bc8f2028e697a0205420e697a0205a290a2d204a53206e65772044617465287374722920e68a8a206e6169766520e5bd93e69cace59cb0e697b6e997b420e28692204f776e657220e59ca8202b3720e697b6e58cbae79c8be588b0e5878f2037680a2d2068616e646c6545786368616e676554696d656f7574202f20636865636b4d61746368656454696d656f75742072656f70656e20e8b7afe5be84e5908ce6a0b7e4b8ade68b9b0a0ae5bdb1e5938de88c83e59bb4e58e86e58fb220313120e69da120636f6d706c65746564206f6666657220e4bb8e20342f313020e887b3e4bb8ae697b6e997b4e688b3e983bde698af206e6169766520e6a0bce5bc8f2c20e5b7b2206261636b66696c6c20e4bfae2e20e8bf90e8a18ce697b6203320e5a4842055504441544520e694b9e794a8204a5320746f49534f537472696e67282920e58f82e695b0e7bb91e5ae9a2c20636f6d6d6974203663363763343420e5b7b2e68ea82e0a0ae8bf99e5928ce68891e698a8e6999ae7ab8be79a8422e69fa5e8afa2e697b6e58cbae7baaae5be8b22e5908ce4b880e6a0b9e59ba020e2809420e697a2e698afe69fa5e8afa2e7baaae5be8be4b99fe698afe58699e585a5e7baaae5be8b2c20e7b3bbe7bb9fe7baa7e8a681e6b1822e0a0a404e57543a2050322d303220e5bc80e68993e5898de8afb72070756c6c202b207265737461727420e4bda0e982a3e8beb92072656c61792c20e590a6e58899e696b020636f6d706c657465642e2e2e