Built
Nodes: all three classes
Every SourceLess node is one of three classes, set by how much it keeps. Only the two that keep a chain may seal, and only when the genesis gives them a seat.
height 23735 of 23735 on the network. 9 peer(s) connected, 77 in its peer directory; 1031 block(s) followed and 858 pulled in by sync since this follower started. Caught up: this follower holds every block any peer has claimed, so every panel below is the whole chain. Genesis 1cf8655125cc1bbb…, producers genesis.
Following 7 seed(s) — their addresses are not published here, for the reason the peer table gives. Its store is held under its own Cerberus lease — no other node’s store is opened, touched or stopped.
A fork runs all of SourceLess, not only its seats: nodes of all three classes, discovery, hostless storage, contracts, STR.talk and the door. Nearly every part signs its records over the genesis hash, so it works on your fork as it does on Asgard and refuses anything signed for another chain. Each part below says how to run it against your fork, and what is not built. 4 built, 3 partly built, 1 not built.
Built
Every SourceLess node is one of three classes, set by how much it keeps. Only the two that keep a chain may seal, and only when the genesis gives them a seat.
Partly built
Praeco is hostless peer discovery: nodes publish self-signed records (an ed25519 and ML-DSA pair), exchange them with the peers they meet, and drop a record that fails five dials in a row. Records expire after 30 minutes.
Built
Data with no server. A space (Oort) records on chain who may read it, its price and a manifest root; the content is never on chain. It is cut into encrypted 256 KiB chunks (Accretion) with Merkle proofs, so a peer holding chunks cannot read them. Records from a spreadsheet seal into a space (Stardust, from Kuiper's CSV import), and a reader can verify what it fetched against block headers without keeping the chain (Lagrange, --light).
Built
Every contract template deploys on a fork: the same compiler gives the same bytecode, the same VM charges the same gas, and the same deployer and salt give the same address.
Partly built
Threads between STR.domains, sealed end to end (Occultation). The chain records that a message was posted, who may read a thread, receipts and key epochs; the message itself is sealed to its readers.
Built
Thrymgjoll is the holder's door: an application a holder signs in to with their STR.domain. It holds no key. The wallet signs a challenge that carries the genesis hash, and the door checks it against the chain.
Not built
A phone's eSIM as a way in: the device carries, or unlocks, the key of an STR.domain, and the door admits it with the same challenge a wallet signs today.
Partly built
This explorer, pointed at your fork. It follows your chain as a node does and shows its blocks, names, spaces, threads and contracts.
Built
What it is
Every SourceLess node is one of three classes, set by how much it keeps. Only the two that keep a chain may seal, and only when the genesis gives them a seat.
On your fork
The fork command starts the seats, each a Quasar. Any other node joins by being given your genesis file and a seat to dial: without a seat key it follows, validates and serves, which is the ordinary state of a follower. --network cannot name a fork, because a fork is in no register: --genesis is how a node is told which chain it is on.
| Class | Keeps | Seals | Use it for |
|---|---|---|---|
| Pulsar | No chain: a constant-size checkpoint | Never | A light node: a phone, a gateway, a reader that verifies without storing |
| Quasar | Full state and the last 4,096 blocks | In turn, when it holds a seat | The default: every seat the fork command starts is one |
| Supernova | The full archive, every block | In turn, when it holds a seat | The archive your explorer and your auditors read from |
# the genesis file is genesisFile in <data root>/fork.json; a seat's p2p address is in the banner strblk node --class quasar --genesis <your genesis.json> --peers <seat p2p> strblk node --class supernova --genesis <your genesis.json> --peers <seat p2p> strblk node --class pulsar --genesis <your genesis.json> --peers <seat p2p> strblk classes # what each class keeps and may do
What it does not do yet
Partly built
What it is
Praeco is hostless peer discovery: nodes publish self-signed records (an ed25519 and ML-DSA pair), exchange them with the peers they meet, and drop a record that fails five dials in a row. Records expire after 30 minutes.
On your fork
Discovery is scoped twice, so a fork's nodes and Asgard's never form a session. Praeco refuses a record from another chain id, and the Bifrost handshake refuses a peer that follows a different genesis, even under the same chain id. The rendezvous points your nodes announce are derived from your genesis, so they are your fork's alone. A fork has no built-in seed list: its nodes are given --peers until you publish one.
strblk node ... --peers <seat p2p>,<seat p2p> # who to dial first strblk node ... --advertise <public host> # the address your node announces strblk beacon --genesis <your genesis.json> # your chain's rendezvous points
What it does not do yet
/api/status on its operator port) counts the known peers that meet there. Nothing dials from them yet. Seeds and peer exchange are what connect a node today.--peer-shadow).Built
What it is
Data with no server. A space (Oort) records on chain who may read it, its price and a manifest root; the content is never on chain. It is cut into encrypted 256 KiB chunks (Accretion) with Merkle proofs, so a peer holding chunks cannot read them. Records from a spreadsheet seal into a space (Stardust, from Kuiper's CSV import), and a reader can verify what it fetched against block headers without keeping the chain (Lagrange, --light).
On your fork
Every node the fork command starts mounts the hostless door, and every space record is signed over your fork's genesis hash, so a space on your fork exists only on your fork. The explorer's Spaces page lists them.
strblk space init --node <your fork's RPC> strblk space create ... --node <your fork's RPC> strblk space put | get [--light] | grant | revoke | rotate | holders ... --node <your fork's RPC> strblk space import --from csv <file> ... --node <your fork's RPC> # records into a space strblk space export --to csv ...
What it does not do yet
Built
What it is
Every contract template deploys on a fork: the same compiler gives the same bytecode, the same VM charges the same gas, and the same deployer and salt give the same address.
On your fork
Fork contracts has a draft builder for each template: set its constants, see its bytecode and where it would land, and download the file to deploy to your fork.
strblk contract template <name> > <name>.ares strblk wallet deploy <name>.ares --dry-run --address <you> strblk wallet deploy <name>.ares --node <your fork's RPC>
What it does not do yet
Partly built
What it is
Threads between STR.domains, sealed end to end (Occultation). The chain records that a message was posted, who may read a thread, receipts and key epochs; the message itself is sealed to its readers.
On your fork
Every node the fork command starts mounts the STR.talk door, and every record is signed over your fork's genesis hash, so a thread on your fork is refused anywhere else. A participant needs an STR.domain on your fork.
strblk talk init | card | publish --node <your fork's RPC> strblk talk open | post | read | thread | transcript ... --node <your fork's RPC> strblk talk rekey | receipt | receipts ... --node <your fork's RPC> strblk talk send | fetch | inbox ... --courier <a holder's RPC>
What it does not do yet
Built
What it is
Thrymgjoll is the holder's door: an application a holder signs in to with their STR.domain. It holds no key. The wallet signs a challenge that carries the genesis hash, and the door checks it against the chain.
On your fork
Point the door at your fork's node and it admits the names on your fork, and only them: a signature made for Asgard does not open a door on your fork.
strblk wallet gate --node <your fork's RPC> --gate-surface <your application> [--wallet <wallet URL>] # loopback by default; anything else needs TLS: --gate-host and --public-origin
What it does not do yet
Not built
What it is
A phone's eSIM as a way in: the device carries, or unlocks, the key of an STR.domain, and the door admits it with the same challenge a wallet signs today.
On your fork
Nothing in this build does it: there is no eSIM, SIM or mobile-profile code anywhere in it. What it would take is in the ideas, beside the other things a fork could have next.
What it does not do yet
Partly built
What it is
This explorer, pointed at your fork. It follows your chain as a node does and shows its blocks, names, spaces, threads and contracts.
On your fork
Give it your genesis file, which is how it is told about a chain this build does not carry, and a seat to follow.
strblk explorer --genesis <your genesis.json> --peers <seat p2p> [--class supernova]
What it does not do yet