Components

What runs where. A map of the IronIP system as deployed.

Core libraries

ModuleRole
src/lib/bca-core.jsPaper-correct BCA implementation: Hash1 computation, interface ID derivation, 32 modifiers and Merkle tree, 8-step verification. No AWS dependencies.
src/lib/bca-wallet.jsBSV mainnet wallet: UTXO fetch, OP_RETURN transaction creation, ARC broadcast, block header + TSC Merkle proof retrieval.
src/lib/block-fetcher.jsWhatsOnChain integration for block headers and Merkle proofs after anchor confirmation.
src/lib/bca-verifier.js (planned)Strict-mode shared verifier used by all adapters. Consolidates lookup/matching.
src/lib/bca-extractor.js (planned)Transport-agnostic BCA-address extraction from HTTP headers, MQTT usernames, IKE ID payloads, X.509 certs.

Lambda functions

EndpointHandlerPurpose
POST /registerregister.handlerAnchor device identity to Bitcoin mainnet. Generates modifiers + Merkle tree, builds OP_RETURN, broadcasts, stores BCA Parameters.
POST /bulk-registerbulk-register.handlerAnchor up to 32 devices in a single Bitcoin transaction. Cost-efficient batch operation.
POST /generategenerate.handlerGenerate a BCA IPv6 address from registered parameters for a given subnet prefix and modifier index.
POST /verifyverify.handlerRun 8-step BCA verification against an IPv6 address.
POST /confirmconfirm.handlerFetch block header + Merkle proof from WhatsOnChain after anchor tx is mined. Promotes pending → confirmed.
POST /provisionprovision.handlerAssign BCA IPv6 address to a real EC2 ENI via AssignIpv6Addresses + SSM reapply.
POST /pingping.handlerIssue ping6 between Devices via SSM command.
POST /demo-verifydemo-verify.handlerEnd-to-end: find BCA addresses on ENIs, ping Device A → Device B, verify source address.
POST /walletwallet.handlerWallet status, balance, funding address.
POST /exportexport.handlerExport BCA Parameters as JSON for standalone verification.
POST /iot-testiot-test.handlerInvoke IoT Custom Authorizer directly for demo purposes.
POST /iot-connectiot-connect.handlerDevice A publishes to IoT Core via HTTPS using BCA Custom Authorizer.
(internal) iotAuthorizeriot-authorizer.handlerIoT Core Custom Authorizer. Extracts BCA address, runs 8-step verification, returns IoT policy.
POST /pool/claim (planned)pool-refresher.handlerAtomically claim a pre-confirmed anchor from the pool for a demo session.

Storage

ResourcePurpose
DynamoDB bca-anchors-devBCA Parameters for every registration. Keyed by device token ID. Contains modifiers, Merkle proofs, raw tx, block header, confirmation status.
DynamoDB ironip-anchor-pool (planned)Pool of pre-confirmed anchors available for demo sessions. Refilled by scheduled pool-refresher.
DynamoDB ironip-proof-log (planned)Per-adapter verification attempt log with TTL. Backs the proof pages' live activity feeds.
SSM Parameter /bca-demo/wallet-wifEncrypted BSV wallet WIF. Used by register + bulk-register to sign anchor transactions.

Network infrastructure

ResourcePurpose
VPC1 (existing, us-east-1)Hosts Device A, Device B on real ENIs. IPv6 /64 subnet. Egress-only IGW.
VPC2 (planned, us-east-1)Isolated second trust domain. Device C. No peering to VPC1.
VPC3 (planned, eu-west-1)Cross-region trust domain. Device D. Demonstrates region-independent verification.
IoT Core endpointConfigured via window.IRONIP_CONFIG.iotEndpoint. Custom authorizer bca-authorizer (signing disabled).

Frontend

PathPurpose
public/index.htmlMain UI — live demo flow.
public/js/app.jsDemo flow logic, wired to API Gateway endpoints. Config-driven via window.IRONIP_CONFIG.
public/js/config.example.jsTemplate for local deployment configuration. Real config.js is gitignored.
public/docs/Knowledge base (this site).
public/proofs/ (planned)Per-adapter proof pages with live verification feeds.

See also