diff --git a/README.md b/README.md index f7ff6978..da4e06e4 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,29 @@ > @nostrwatch is in heavy development. Legacy nostr.watch is **in maintenance mode**. # @nostrwatch -nostr.watch discovers, monitors and indexes nostr relays, and then publishes the results in the form of NIP-66. There are many shared packages between agents and clients. The ones that are useful external to nostr.watch are in `./libraries` and purpose built packages are in `./internal`. +A Typescript stack for monitoring, auditing, describing and validating anything related to nostr relays. `@nostrwatch` is an [OpenSats](http://opensats.org) grant recipient. + +# packages +| package | type | description | status | web | server | cli | notes | +|-----------------------------|----------|------------------------------------------------------------------------------------------------------------------|--------|-----|--------|-----|-------------------------------------------------------| +| @nostrwatch/gui | webapp | NIP-66 nostr client. | alpha | ✓ | | | | +| @nostrwatch/trawler | agent | Scraps all of the known nostr-verse for relays, sanitizes and dedupes them. | alpha | | ✓ | | rewrite imminent | +| @nostrwatch/nocapd | agent | Persistently checks relays on a regular interval with many configuration options. | alpha | | ✓ | | rewrite imminent | +| @nostrwatch/nip66 | library | Library that manages NIP-66 aggregation control flow and provides utilities that help conform to NIP-66 | alpha | ✓ | ✓ | | | +| @nostrwatch/auditor | library | Checks relays against their advertised supported nips and runs a variety of passive validations along the way. | alpha | ✓ | ✓ | ✓ | | +| @nostrwatch/nocap | library | Extensible library for checking relay liveness via websocket and optionally fetches geodata, SSL, NIP-11 and DNS | alpha | ✓ | ✓ | | | +| @nostrwatch/schemata | library | JSON-Schemas for low-level protocol JSON, note kinds, protocol messages and NIP-11 information documents. | alpha | ✓ | ✓ | | | +| @nostrwatch/schemata-js-ajv | library | Library that wraps ajv and @nostrwatch/schemata to simplify validation of nostr json payloads. | alpha | ✓ | ✓ | | | +| @nostrwatch/websocket | internal | Isomorphic Websocket wrapper | beta | ✓ | ✓ | | | +| @nostrwatch/utils | internal | Variety of utilities that are shared between many packages. | beta | ✓ | ✓ | | | +| @nostwatch/announce | internal | Basic library for monitor 10166 announcement. | alpha | ✓ | ✓ | | rewrite imminent | +| @nostrwatch/nwcache | internal | LMDB wrapper for agent data | beta | | ✓ | | needs attention | +| @nostrwatch/publisher | internal | Handles publishing of nostr events | alpha | | | | | +| @nostrwatch/logger | internal | Logger library used throughout all packages | beta | | ✓ | | will be replaced with logger from @nostrwatch/auditor | +| @nostrwatch/controlflow | internal | Manages backoff and BullMQ queues | beta | | ✓ | | will be nuked after @nostrwatch/nocapd rewrite. | +| @nostrwatch/seed | internal | Manages seeding of relays from a variety of different sources. | | | | | | + +# development + +`@nostrwatch` will be open to contributions after the agents have been rewritten, contribution guidelines have been established and documents are in place for all apps, agents and libraries -# Stack - -## agents -- **trawler** - finds new relays to monitor -- **nocapd** - monitors relays and publishes NIP-66 events - -## gui -- **nostr.watch** - early stages - -## libraries -- **nocap** - Runs basic checks on relays. -- **kit** - Attempts to simplify the process of aggregating NIP-66 events (overkill for general use!) -- **idb** - Purpose built IDB for more advanced NIP-66 usage (overkill for general use!) - -### Development -a `CONTRIBUTE.md` will exist somewhere down the road. Since it's early stage, many details are not yet established, but here some details that are: - -1. Primary branch for development @nostrwatch:next is `next`. Legacy is on `main` and the workflows are still functional for patches and legacy maintenance headaches. -2. Branching model: TBD (Trunk Based Development), trunk branch is `next` for early stage. Early alpha there will be long-standing branches for packages that are not yet in next. Once `@nostrwatch:next` reaches beta `next` will become `main` and there will be `trunk` branch. -3. GH Actions will be used for CI/CD -4. Issues will be reserved for actionable items, such as bugs. Anything requiring discussion lives in discussion until it's promoted to an issue. -5. PRs should be opened as a draft. When the PR is ready to be published commits should be squashed. - -``` -git clone https://github.com/sandwichfarm/nostr-watch.git -cd ./nostr-watch -yarn bootstrap -yarn install -``` diff --git a/internal/status/.gitkeep b/internal/status/.gitkeep deleted file mode 100644 index e69de29b..00000000