rhi

Coordinated trade for connected markets
git clone https://radroots.dev/git/rhi.git
Log | Files | Refs | README | LICENSE

reconciliation_commit.v1.json (3159B)


      1 {
      2   "schema": "radroots.rhi.reconciliation-commit",
      3   "schema_version": 1,
      4   "contract_version": 1,
      5   "state_schema_version": 6,
      6   "authority": "sealed_reconciliation_attempt_repository",
      7   "input": {
      8     "lease": "exact_live_compare_and_swap_lease",
      9     "attempt": "exact_claim_derived_attempt_plan",
     10     "source_inventory": "exact_canonical_request_order_bounded_to_configured_count_plus_one",
     11     "events": "signature_verified_admitted_replay_facts_only",
     12     "time": "injected_source_result_milliseconds_only"
     13   },
     14   "transaction": {
     15     "mode": "one_short_sqlx_transaction",
     16     "fences_before_mutation": [
     17       "exact_live_lease_row",
     18       "exact_trade_dirty_generation",
     19       "exact_evidence_policy_digest",
     20       "exact_per_source_prior_checkpoint"
     21     ],
     22     "atomic_writes": [
     23       "canonical_mutations",
     24       "signed_events",
     25       "source_observations",
     26       "immutable_attempt",
     27       "immutable_source_results",
     28       "exact_source_inventory_digests",
     29       "at_most_one_dirty_generation_advance",
     30       "eligible_source_checkpoints"
     31     ],
     32     "source_or_network_wait": false
     33   },
     34   "checkpoint": {
     35     "scope": [
     36       "source_id",
     37       "trade_id",
     38       "evidence_policy_digest",
     39       "selector_digest"
     40     ],
     41     "advance_only_when": "completion_is_complete_and_candidate_is_strictly_newer_than_prior",
     42     "forbidden_completion_classes": [
     43       "incomplete_timeout",
     44       "incomplete_unavailable",
     45       "incomplete_resource_limit",
     46       "incomplete_unknown",
     47       "unsupported"
     48     ],
     49     "public_evidence": "sealed_and_minted_only_after_durable_commit_confirmation"
     50   },
     51   "dirty_generation": {
     52     "advance_only_for": "newly_inserted_canonical_mutation_or_signed_event",
     53     "advance_count_maximum_per_attempt": 1,
     54     "observation_only_or_exact_replay": "no_advance"
     55   },
     56   "idempotency": {
     57     "key": "attempt_id",
     58     "source_inventory_identity": "domain_separated_sha256_over_exact_ordered_persisted_facts_and_provenance",
     59     "exact_committed_inventory": "reconciled_as_created_false",
     60     "mismatch": "conflict",
     61     "lost_success_retry": "checked_before_live_lease_and_generation_fences"
     62   },
     63   "schema_objects": {
     64     "tables": [
     65       "evidence_reconciliations",
     66       "evidence_reconciliation_sources"
     67     ],
     68     "immutability": "no_update_and_no_delete_triggers",
     69     "source_count_maximum": 16
     70   },
     71   "diagnostics": "crate_owned_source_free_redacted",
     72   "effects": {
     73     "sqlite": true,
     74     "filesystem": false,
     75     "source_or_relay": false,
     76     "network": false,
     77     "task_spawn": false,
     78     "ambient_clock": false,
     79     "ambient_entropy": false
     80   },
     81   "forbidden": [
     82     "caller_forged_cursor_evidence",
     83     "raw_or_unverified_event_persistence",
     84     "partial_attempt_commit",
     85     "cursor_advance_for_incomplete_or_unsupported_result",
     86     "cursor_advance_before_evidence_commit",
     87     "dirty_advance_for_observation_only",
     88     "stale_lease_commit",
     89     "stale_generation_commit",
     90     "stale_checkpoint_commit",
     91     "unbounded_result_iterator",
     92     "raw_sqlx_authority_escape"
     93   ],
     94   "deferred": [
     95     "evidence_manifest",
     96     "lineage_reducer",
     97     "attestation",
     98     "publication",
     99     "job_finalization"
    100   ]
    101 }