mirror of
https://github.com/profullstack/logicsrc.git
synced 2026-10-02 04:43:58 +00:00
Add pay2seed to the OpenSwarm family: consent at upload and a paid seed market
OpenSwarm pays a seeder per verified piece served, and nothing pays anyone to stay. An archive, a backup, a dataset waiting for its buyer or a podcast's back catalogue earns nothing the month nobody downloads it, so it dies the way every swarm always has. And nothing in BitTorrent says who put a swarm there or whether they were allowed to, which is why a seeder is presumed to be doing something wrong. pay2seed is the member document for both halves. An attestation, signed at upload with a fixed basis (own, licensed, open-license, public-domain, personal) and a notice endpoint, is what a hub requires before it will list anything; public claims get a claim window and a standing, and a notice voids them. An offer escrows a budget at an ippay hub for a swarm, public or private, to be held by M seeders for N days at a price per GiB-month, bought over x402 exactly as a pass is. Seeders take leases, prove each period by storage challenge or by a probe over the ordinary wire, and are paid through the payee they already have. Public feeds ride on ipdb; ipfile.pin on c0mpute is the same offer on the auction. Also: the family table, stack diagram and registry rows; the ip seed command group; PRD 0006; the protocol row on /openswarm. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SKAohrRkqLKVQL2cGCAkR5
This commit is contained in:
parent
4fed2681ec
commit
cb5f09b216
7 changed files with 813 additions and 1 deletions
|
|
@ -130,6 +130,29 @@ ip node hello <peer address> # diagnostic: handshake and p
|
|||
A c0mpute worker embeds the same library; `c0mpute worker start --openswarm`
|
||||
is the daemon form and `ip` is the operator's tool.
|
||||
|
||||
### 2.10 Seed market
|
||||
|
||||
```
|
||||
ip seed attest (<file key> | <infohash> | <magnet>) --basis own|licensed|open-license|public-domain|personal
|
||||
[--license <spdx>] [--notice <url|mailto>] [--description <text>] [--public | --private]
|
||||
ip seed offer (<file key> | <infohash> | --feed <feed key>) --hub <url> --days <n> --seeders <min>[,<max>]
|
||||
[--price <usd per GiB-month>] [--proof-hours <n>] [--tracker <url>]...
|
||||
ip seed offers [--hub <url>] [--public | --private] [--basis <b>] [--min-price <usd>] [--max-size <bytes>]
|
||||
ip seed take <offer id> --hub <url> # take a lease, fetch, seed until it ends
|
||||
ip seed leases [--hub <url>] [--status proven|fetching|lapsed|ended]
|
||||
ip seed status <offer id | lease id>
|
||||
ip seed void <offer id> # requester: void and refund the unearned budget
|
||||
ip seed notice <attestation id> --kind rights|illegal|personal-data|other --statement <text>
|
||||
```
|
||||
|
||||
`ip seed attest` is the consent step and is what `ip file add --public` and
|
||||
`ip file pin` call first; `ip seed offer` on a private file key includes a
|
||||
pass for the seeders when the manifest charges per GiB. `ip seed take` is
|
||||
what a torlink daemon does on its own from `ip seed offers`; here it is the
|
||||
manual form, and it sets the swarm's seed time to the lease's end so the
|
||||
client's reaper cannot drop it early. Everything returns the record ids
|
||||
(`pay2seed` §7.2) and, for `offers`, the projected `earnedUsd` per lease.
|
||||
|
||||
## 3. Output examples
|
||||
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue