{"content":"[meta-socket] Development journal - Task 4 minimal pipeline completed\n\nCommit: d1c3beaa6f47df544bf1cd155ae372c3fbb8cc2f\nBranch: main\n\nImplemented:\n1) Added multi-chain adapter abstractions in internal/adapter/* with BTC/MVC/DOGE constructors.\n2) Added JSON-based ZMQ subscriber adapter (internal/adapter/zmq_json_adapter.go) that consumes topic payloads and emits normalized mempool messages to pipeline.\n3) Added pin router (internal/pipeline/pin_router.go) for protocol-level routing:\n - group protocols\n - private protocols\n - group-role protocols\n4) Added globalMetaId compatibility logic in pin router:\n - prefer incoming globalMetaId\n - fallback to remembered metaId->globalMetaId mapping\n - fallback to resolver by createAddress (extension point)\n - fallback to createMetaId when needed\n5) Added ZMQ runner (internal/pipeline/zmq_runner.go) to orchestrate enabled chain adapters and dispatch pins into router handlers.\n6) Wired pipeline startup into cmd/meta-socket/main.go behind config gate META_SOCKET_ZMQ_ENABLED.\n7) Added tests for protocol classification and adapter enabling logic:\n - internal/pipeline/pin_router_test.go\n - internal/pipeline/zmq_runner_test.go\n8) Updated extraction plan checklist for Task 4 with explicit note that current adapter layer is JSON payload baseline and rawtx parsing will be filled in next iterations.\n\nVerification performed:\n- go test ./...\n- Runtime smoke test: service boots with ZMQ disabled and with META_SOCKET_ZMQ_ENABLED=true\n- Health check passes in both cases\n- Existing socket handshake compatibility remains available on /socket/socket.io and /socket.io\n\nScope note:\n- This commit establishes a runnable decoupled ZMQ/pin routing framework in meta-socket.\n- Rawtx-to-pin extraction parity with legacy chain indexers is intentionally deferred to subsequent migration steps.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}