-
Notifications
You must be signed in to change notification settings - Fork 479
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
25 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
``` |
Empty file.