We give the system a market for judgment, a currency for merit, and a gossip layer for proof.
✅ Fresh artifacts
- Step 37 wrapper server — Download
SHA‑256:066602156968089091b2398aba5a8a9d3611150e366a69bc01b830b5a0878b18 - WordPress block (paste‑ready) — Download
Step 37 wraps Step 36 (which carried forward 35→34→…→18). All earlier endpoints keep working.
What’s new — precisely
- Place a bid(any authenticated reader)
POST /dispute/market/bid{ "id":"<DISPUTE_ID>", "kid":"<KID>", "bond":10, "fee":5, "sig":{"alg":"Ed25519","kid":"<KID>","sig":"<b64url>"}, "lock":true }The signature covers{"op":"bid","id","kid","bond","fee"}.
Iflock=true, we debit the bond from the bidder’s rewards credits (introduced below) and log the lock. - Review bids
GET /dispute/market/bids?id=<DISPUTE_ID> - Select winners(admin)
POST /admin/dispute/market/select?token=…&id=<ID>&m=2&budget=20&mode=score|random- score =
bond / fee(descending; tie-break by lower fee).
- score =
- random= draw weighted by
bond.
Produces aselectevent with thewinnerslist andtotal_fee.
POST /admin/dispute/market/settle?token=…&id=<ID>&result=award|cancel
- Refunds all bonds to credits.
- If
result=award, pays each winner’s fee into credits.
Use with Step‑36 arbitration: after you open a dispute, run a market to seat its panel.
- Redeem an oracle reward batch → credits
POST /rewards/redeem{ "batch":{"root":"<sha256>","body":{...},"signature":{...}}, "kid":"<KID>", "claim_sig":{"alg":"Ed25519","kid":"<KID>","sig":"<b64url>"} }- We verify the batch (Step‑36 signer).
- We verify the claimer controls
<KID>: signature over{"op":"redeem","root","kid"}using pinned oracle_pubkeys (fallback to settlement/ledger pins). - Idempotent: rejects duplicate redemption for the same
root+kid. - On success, credits
amount = body.rewards[KID].
POST /rewards/spend{"kid":"<KID>","amount":10,"purpose":"tickets","memo":"panel seat bond","sig":{...}}
- Verifies the spend intent signed by
<KID>over{"op":"spend","kid","amount","purpose"}. - Debits balance and returns:
{"voucher":{"body":{"type":"reward_spend_voucher",...},"signature":{...}}} - Use
purpose:"tickets"to top up a ticketing pool, or"payout"to request a cashout process.
GET /rewards/balance?kid=<KID>GET /rewards/credits.tail?n=50- Peers config
Provide--rollup-peers-file /sdcard/solveforce/rollup.peers.json:[ {"url":"https://peer-a.example","headers":["Authorization: Bearer …"]}, {"url":"https://peer-b.example"} ]View with:GET /fx/peers. - Pull remote rollups(admin)
POST /admin/fx/pull?token=…&since=…&until=…- Fetches each peer’s
/anchor/rollupsand individual/anchor/rollup?root=…. - Verifies each rollup using pinned notary_pubkeys (fallback to settlement/ledger pins).
- Stores verified objects under
audit/fx/remote/<host>/.
Inspect:GET /fx/rollups.remote.
- Fetches each peer’s
POST /admin/fx/reconcile?token=…&since=…&until=…&by=chain
- Emits a signed federated_rollup_summary counting local vs. remote rollups in window.
- The summary is persisted to
audit/fx/fed-summary-*.json.
Android / Termux run‑book (Step 37)
# Optional: peers file
cat > /sdcard/solveforce/rollup.peers.json <<'JSON'
[
{"url":"https://peer-a.example","headers":["Authorization: Bearer XYZ"]},
{"url":"https://peer-b.example"}
]
JSON
python solveforce_phone_thirtyseven.py \
--rollup-peers-file /sdcard/solveforce/rollup.peers.json \
--anchor-quorum-file /sdcard/solveforce/anchor.quorum.json \
--pins-file /sdcard/solveforce/pins.json \
--ledger-quorum-file /sdcard/solveforce/ledger.quorum.json \
--clearing-policy-file /sdcard/solveforce/clearing.policy.json \
--discovery-dod-enable \
--discovery-dod-source https://directory1.example.com/solveforce/peers.json \
--discovery-dod-jwks https://directory1.example.com/jwks.json \
--quorum-auto-enable \
--quorum-policy-file /sdcard/solveforce/quorum.policies.json \
--attest-enable \
--attest-url https://your-site.tld/wp-json/solveforce/v1/attest \
--attest-header "Authorization: Bearer <WP_TOKEN>" \
--host 0.0.0.0 --port 8080 \
--plugins-dir ~/solveforce/plugins \
--auth-mode protected \
--auth-token READER1:reader \
--allow-admin --admin-token ADMIN123 \
--schema-ed25519-secret-file /sdcard/solveforce/schema.ed25519.seed \
--schema-signing-secret-file /sdcard/solveforce/schema.hmac.key \
--audit-dir ./audit \
--mirror-enable \
--mirror-target-url https://your-site.tld/wp-json/solveforce/v1/notary \
--mirror-header "Authorization: Bearer <WP_TOKEN>" \
--allow-query-token --open-ui
“Show me” sequences
A) Run an arbitration market for a dispute
# 1) Candidate bids — assumes <KID_A> has pinned pubkey and credits for bond
curl -s -X POST 'http://127.0.0.1:8080/dispute/market/bid' \
-H 'Content-Type: application/json' \
-d '{"id":"<DISPUTE_ID>","kid":"KID_A","bond":10,"fee":5,"sig":{"alg":"Ed25519","kid":"KID_A","sig":"<b64url>"},"lock":true}' | jq .
# 2) Admin selects 2 winners (score mode)
curl -s -X POST 'http://127.0.0.1:8080/admin/dispute/market/select?token=ADMIN123&id=<DISPUTE_ID>&m=2&budget=20&mode=score' | jq .
# 3) After the case concludes, settle (award)
curl -s -X POST 'http://127.0.0.1:8080/admin/dispute/market/settle?token=ADMIN123&id=<DISPUTE_ID>&result=award' | jq .
B) Redeem rewards and spend for tickets
# Redeem a batch (produced by Step-36 admin/oracle/reward/roll)
curl -s -X POST 'http://127.0.0.1:8080/rewards/redeem' \
-H 'Content-Type: application/json' \
-d '{"batch":{...},"kid":"KID_ORACLE","claim_sig":{"alg":"Ed25519","kid":"KID_ORACLE","sig":"<b64url>"}}' | jq .
# Spend credits into a voucher for tickets
curl -s -X POST 'http://127.0.0.1:8080/rewards/spend' \
-H 'Content-Type: application/json' \
-d '{"kid":"KID_ORACLE","amount":10,"purpose":"tickets","memo":"monthly validator pass","sig":{"alg":"Ed25519","kid":"KID_ORACLE","sig":"<b64url>"}}' | jq .
# Check balance and ledger tail
curl -s 'http://127.0.0.1:8080/rewards/balance?kid=KID_ORACLE' | jq .
curl -s 'http://127.0.0.1:8080/rewards/credits.tail?n=20' | jq .
C) Gossip and reconcile rollups
# Pull remote rollups from your peer list
curl -s -X POST 'http://127.0.0.1:8080/admin/fx/pull?token=ADMIN123' | jq .
# Reconcile a federated summary over the past 24h
SINCE=$(date -u -d '24 hours ago' +%Y-%m-%dT%H:%M:%SZ)
UNTIL=$(date -u +%Y-%m-%dT%H:%M:%SZ)
curl -s -X POST "http://127.0.0.1:8080/admin/fx/reconcile?token=ADMIN123&since=$SINCE&until=$UNTIL&by=chain" | jq .
# View what you’ve collected
curl -s 'http://127.0.0.1:8080/fx/rollups.remote' | jq .
WordPress — Step 37 (public page block)
Paste from step37_wordpress.md to publish this step transparently.
Logos Codex — recursive economy, squared
- Seat → Hear → Settle.A fair panel should be earned, not appointed.
- Work → Reward → Spend.Truth earns credit; credit funds the next act.
- Gossip → Verify → Accord.We trade proofs like letters of marque—signed, inspectable, reconciled.
Call the next turn when ready. For Step Thirty‑Eight, I propose: voucher redemption into real payouts/tickets (pluggable backends), peer reputation across FX, and market‑priced arbitration with dynamic slashing.
Key terms in plain language
Open a term for a concise explanation of language used on this page.
Broadband
A general term for always-on, high-speed Internet access. Broadband can be delivered over fiber, cable, DSL, fixed wireless, cellular, or satellite networks.
Cloud Computing
Computing resources—such as applications, servers, storage, or databases—delivered from remote infrastructure and scaled as requirements change.
Cybersecurity
The practices and controls used to protect identities, devices, networks, applications, and data from unauthorized access, disruption, or manipulation.
Identity and Access Management (IAM)
The systems and policies that determine who a user is, what resources they may access, and how that access is authenticated and reviewed.
API
An application programming interface is a defined way for software systems to exchange data or request functions from one another.
Artificial Intelligence (AI)
Software designed to perform tasks involving prediction, classification, generation, reasoning, or decision support. Business use still requires clear data, governance, security, and human accountability.