Orgchain v1.7: items, standing offers and the first deal; a Mainnet setting
The chain takes ordinary spends of up to eight inputs and outputs, whose key-path signatures may carry SIGHASH_SINGLE|ANYONECANPAY (0x83); reveals keep their two-in, two-out shape. A new make op records an item, an inscription its maker holds. Any node can offer test BTC for an item another node holds, in any holding: the buyer's SegWit key signs the whole deal, the offer stands in the lab, and the holder accepts by countersigning the item's input, so the item and the payment swap in one transaction. Offers go stale when a promised coin moves or a side re-keys or closes, and payments spend unpromised coins first. Sends take up to eight coins. Mainnet is a third mining setting: no holding mines, beats pay the lab wallet, and holdings are funded from it. The sample ends on lineage's open offer for sol's launch-kit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
This commit is contained in:
1 parent
32e8131500
commit
69a97544da
15 files changed
+764
-111
No files matched your search
@@ -7,8 +7,9 @@ inscription on a private toy chain in your browser, and its parent inscription i
|
||||
chain itself records who did what, and when.
|
||||
|
||||
- **Found** a holding (a root: the LLC). **Birth** orgs and agents under any org. **Award** a belt (one skill, one
|
||||
seat). **Decide** (a decision on a node's record). **Graduate** an org (its edge flips from derived to adopted).
|
||||
**Close** a node (derived children close with it; graduated ones hold their own roots and stay open).
|
||||
seat). **Decide** (a decision on a node's record). **Make** an item (an inscription its maker holds, and can sell).
|
||||
**Graduate** an org (its edge flips from derived to adopted). **Close** a node (derived children close with it;
|
||||
graduated ones hold their own roots and stay open).
|
||||
- **Time.** A beat is a block. At the default tempo each act is its own beat; at 10, 30 or 60 seconds, acts are cued and
|
||||
land together on the next beat; on manual they wait for *Beat now*. The slider and *Replay* show a holding as it
|
||||
stood at any beat.
|
||||
@@ -16,8 +17,10 @@ chain itself records who did what, and when.
|
||||
every active holding mines, and each beat's 50 test BTC splits pro rata by hashrate, a dial from 0 to 9 on each
|
||||
holding (1 unless set), one coinbase output per holding; under *Last act* the holding behind the latest act or send
|
||||
takes the whole beat (with nothing cued, *Beat now* pays the one being worked in), so at a timed tempo acts race
|
||||
for the next beat. **Send** moves test BTC from any active node to any other, in
|
||||
its holding or another, signed by the sender's BIP-84 key: at most two coins in, at most 50 test BTC out, and the
|
||||
for the next beat; under *Mainnet* no holding mines, as on mainnet: beats pay the lab wallet, standing in for the
|
||||
world's miners, and **Fund** moves test BTC from it to a holding, the way you'd fund a seed from a wallet you
|
||||
already have. **Send** moves test BTC from any active node to any other, in
|
||||
its holding or another, signed by the sender's BIP-84 key: at most eight coins in, at most 50 test BTC out, and the
|
||||
toy chain's fixed 500-sat fee. Sends land like acts, at once or cued, and *Beat now* mines a beat even when nothing
|
||||
is cued. A graduation moves each re-keyed node's money to its new address along with its inscription. Balances
|
||||
follow the slider, the timeline lists every reward, send and gas top-up, and Inspect has the exact amounts and the
|
||||
@@ -27,6 +30,13 @@ chain itself records who did what, and when.
|
||||
up from its own money 0.0001 test BTC at a time. A node with neither can't act until someone sends it money, and a
|
||||
graduating org pays for the claim on its new root itself. The lab wallet pays only for foundings (a holding owns
|
||||
nothing until it mines) and for holdings that predate lab keys.
|
||||
- **Deals.** Any active node can **Offer** on an item another node holds, in any holding: OpenOrdex's buy order, with
|
||||
a price. Its SegWit key signs the whole deal at once (SIGHASH_ALL): the item and its own coins in; the item to its
|
||||
Taproot key, the price to the holder's SegWit address and its change out. Nothing reaches the chain until the
|
||||
holder **Accepts** by countersigning the item's input, so the offer stands, kept in the lab like a PSBT in an
|
||||
order book, until it is accepted, withdrawn, or goes stale (a coin it promised moved, or a side closed or re-keyed).
|
||||
The buyer pays the fee; a price of 0 is a free claim. Payments spend coins no offer has promised first. Accepted
|
||||
offers stay as the deals' receipts, and the timeline and Inspect show each deal (`src/orgchain/offers.js`).
|
||||
- **One interpretation.** `src/orgchain/lineage.js` folds `lineage/v0` events into trees, and vets every act before
|
||||
anything is signed. Events it rejects stay on the chain and show as rejected; they just don't change the tree.
|
||||
- **Keys.** Each holding gets its own 24-word lab root, and every node has lineage's keys at its place in the tree
|
||||
@@ -46,8 +56,9 @@ chain itself records who did what, and when.
|
||||
BIP-380 checksums), and its leaves' private keys (OpenSSH, DKIM, WireGuard, PKCS#8, Headscale). Hidden again on
|
||||
every selection; lab keys only.
|
||||
|
||||
Test coins and test keys only: a local chain, the lab wallet (the faucet that pays for foundings) and each holding's lab
|
||||
root, kept in this browser (`localStorage`, key `orgchain:lab:v1`). Nothing here is a real key; minting a real root is
|
||||
Test coins and test keys only: a local chain, the lab wallet (the faucet that pays for foundings, and under *Mainnet*
|
||||
the wallet holdings are funded from) and each holding's lab root, kept in this browser (`localStorage`, key
|
||||
`orgchain:lab:v1`). Nothing here is a real key; minting a real root is
|
||||
the operator's call.
|
||||
|
||||
## Events
|
||||
@@ -60,11 +71,14 @@ the operator's call.
|
||||
| `birth` | the parent | `name`, `kind` (`org` or `agent`) |
|
||||
| `award` | the issuing org or holding | `to`, `skill`, `belt` (`white`, `green`, `black`) |
|
||||
| `decide` | the deciding node | `title`, `why` |
|
||||
| `make` | the making node, which then holds the item | `name`, `note` |
|
||||
| `graduate` | the child's parent (then the handoff to the child's fresh root) | `of` |
|
||||
| `close` | the node itself | none |
|
||||
|
||||
Names are domain labels (lowercase letters, digits, hyphens). Org and agent indices count separately and are never
|
||||
reused.
|
||||
reused. The metadata says what an event means; the parent it spends proves who was allowed to make it; who holds an
|
||||
item afterwards is the chain's to say, never the metadata's. Metadata is public and permanent: an item's note is for a
|
||||
hash or a link, never a secret or a document.
|
||||
|
||||
## Build and test
|
||||
|
||||
@@ -83,9 +97,11 @@ Deploy: copy `dist/` to `ventures/lineage/orgchain/` on `teahubxyz/time` `gh-pag
|
||||
## Built on Super Testnet
|
||||
|
||||
The chain, wallet, inscriptions, metadata and index (`src/adapters`, `src/upstream`, with `src/storage.js` and
|
||||
`src/miner.js`) are [Super Testnet](https://supertestnet.lol)'s, with their tests (`tests/adapters.test.js`) and two
|
||||
additions: the chain also moves native SegWit (P2WPKH) payments, BIP-143 signatures included, and a coinbase may
|
||||
split its reward across up to 64 outputs (`tests/money.test.js`).
|
||||
`src/miner.js`) are [Super Testnet](https://supertestnet.lol)'s, with their tests (`tests/adapters.test.js`) and three
|
||||
additions: the chain also moves native SegWit (P2WPKH) payments, BIP-143 signatures included; a coinbase may split
|
||||
its reward across up to 64 outputs; and ordinary spends take up to eight inputs and outputs, whose key-path
|
||||
signatures may carry SIGHASH_SINGLE|ANYONECANPAY (0x83, the sell-order flag), while reveals keep their two-in,
|
||||
two-out shape (`tests/money.test.js`).
|
||||
See `PROVENANCE.md` and `public/licenses/`. Lineage's key derivation and the claim and
|
||||
countersign handoff (`src/adapters/lineage-keys.js`, `src/adapters/handoff.js`, with their spec vectors in
|
||||
`tests/keys.test.js`) come from the `tree` branch. The full lab (explorer, delegates, recursion and
|
||||
|
||||
Reference in new issue
Block a user