diff --git a/README.md b/README.md index 58373b0..6adfdad 100644 --- a/README.md +++ b/README.md @@ -54,22 +54,22 @@ We doubt that convincing the ATProto ecosystem to support a different DID method - didplcbft is already able to work as a decentralized, standard-compliant PLC implementation, independently from plc.directory - Supports **Websocket-based Export** equivalent to that of the official plc.directory service (described [here](https://github.com/did-method-plc/did-method-plc/pull/129)). - **Validation:** On-chain validation of PLC operations to ensure history integrity. +- **Authoritative Mirroring:** An "authoritative import" mechanism to pull historical data from the official plc.directory. - **Node-to node fast syncing:** Support for snapshot-based sync, to quickly bring new replicas online, making use of the facilities offered by CometBFT. - A custom compact serialization format is used, able to archive/transmit the entire directory using around 30 GB of space/data transfer as of January 2026. ### In progress -- **Authoritative Mirroring:** (mostly functional, needs adjustments): An "authoritative import" mechanism to pull historical data from the official plc.directory. -- **Reputation System:** A "proof of useful storage" system where nodes submit periodic proofs to maintain validator status. +- **Reputation System:** (mostly ready, pending validation) A "proof of useful storage" system where nodes submit periodic proofs to maintain validator status. - Due to the way CometBFT works, it is ideal if there is a limit to how many nodes perform validator duties. The reputation system is meant to select, over time, the "best" nodes for this task, and manage their "voting power." - The reputation system will have some resistance against Sybil attacks - a single entity operating N identities should not be able to get away with putting in less effort than that of N different honest entities combined. +- **Dynamic Validator Sets:** (mostly ready, pending validation) automatic management of which nodes perform validator duties based on their reputation. ### Planned - **Bi-directional Sync:** submitting operations observed on the didplcbft network back to the official plc.directory, while still deferring to operations served by the latter in case of conflict. - **Spam Prevention:** developing a non-currency-based throttling mechanism. - For example, by gossipping hashes of IP addresses and AS numbers across the network in order to limit how quickly spammers can create new identities in the PLC. The challenge is that certain entities (e.g. Bluesky's own official PDSs) will naturally need to create many more identities than others... maybe some sort of allowlisting mechanism would need to be implemented. -- **Dynamic Validator Sets:** automatic management of which nodes perform validator duties based on their reputation. - **Public Testnet:** moving from local clusters to a distributed internet-based environment. - Not really a feature, but more of a cross-cutting aspect: proper test coverage (will probably require refactoring the code first to better separate concerns), and perhaps some proper specs around how the proofs and reputation system work.