From c688a919a9537881c6eca94a991f5ca3ae2b4e9c Mon Sep 17 00:00:00 2001 From: Varun Srinivasan Date: Fri, 1 Sep 2023 17:07:17 -0700 Subject: [PATCH 1/3] docs: update README --- README.md | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index b19096d..b4b1392 100644 --- a/README.md +++ b/README.md @@ -2,32 +2,22 @@ ![Archway](/images/arch512.png) -Farcaster is a community-created protocol for building decentralized social applications. - -Developers can use Farcaster to build new, decentralized social networks, letting the protocol deal with the hard problems of managing user identities and data. Users can create a new account that they control and sign up to use any of these applications. Users are always in control of their data and identity and can switch freely between applications. +Farcaster is a protocol for decentralized social applications. ## Getting Started -Farcaster is currently in early beta and user registrations are invite-only to ensure that the network remains stable. A community curated list of Farcaster applications and utilities is available in the [awesome-farcaster](https://github.com/a16z/awesome-farcaster) repository. - -Invites can be requested in one of two ways: - -1. By messaging [@dwr](https://twitter.com/dwr) on Twitter. -2. By running a [Farcaster Testnet Hub](https://github.com/farcasterxyz/hub-monorepo/tree/main/apps/hubble), and posting your peer id in the [dev channel](https://t.me/farcasterdevchat). - -## Learn More - -The fastest way to get up to speed on the protocol is by watching the [video series](https://www.youtube.com/watch?v=vMWjol6xHJ0&list=PL0eq1PLf6eUdm35v_840EGLXkVJDhxhcF). +1. Start using Farcaster with one of many [Farcaster Apps](https://www.farcaster.xyz/apps). +2. Learn how Farcaster works by watching the [protocol overview series](https://www.farcaster.xyz/protocol). +3. Create your own apps by following tutorials in the [developer portal](https://www.farcaster.xyz/devs). -[![Farcaster Overview](http://img.youtube.com/vi/vMWjol6xHJ0/0.jpg)](https://www.youtube.com/watch?v=vMWjol6xHJ0&list=PL0eq1PLf6eUdm35v_840EGLXkVJDhxhcF) +## Specifications -If you want to dig deeper, we also recommend that you: +This repository lays out the technical specification for implementing Farcaster. It is divided into four sections: -1. Read the [overview](/docs/OVERVIEW.md) for a high-level picture of the problems, goals and design. -2. Review [proposals](/docs/PROPOSALS.md), for historical context behind some of our design decisions. -3. Take a look at [Hubble](https://github.com/farcasterxyz/hub-monorepo), an implementation of a Farcaster Hub. -4. Review the [smart contracts](https://github.com/farcasterxyz/contracts) on the Ethereum blockchain. -5. Dive into the [specifications](/docs/SPECIFICATION.md) to understand the low-level details. +1. [Overview](/hub/README.md) - A high level overview of the protocol. +2. [Proposals](/hub/README.md) - A list of proposals to improve the protocol. +3. [Hub Specification](/hub/README.md) - The technical specification for implementing a Farcaster Hub. +4. [Governance](/hub/README.md) - An overview of how the protocol is governed. ## Contributing From df320c617b09d0c195d99a50e664a4f14a3e2c3c Mon Sep 17 00:00:00 2001 From: Varun Srinivasan Date: Fri, 1 Sep 2023 17:07:28 -0700 Subject: [PATCH 2/3] docs: update Fname policy --- docs/GOVERNANCE.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/GOVERNANCE.md b/docs/GOVERNANCE.md index 56400e2..23c30ef 100644 --- a/docs/GOVERNANCE.md +++ b/docs/GOVERNANCE.md @@ -10,15 +10,17 @@ New changes can be proposed by opening up a new discussion topic in the [protoco The Farcaster core team will work closely with Hub operators and application developers to ensure that changes land smoothly with minimal disruption to the network. Hub operators also have a veto over changes to the Hub, which they can exercise by not upgrading their version of the Hub. It is desirable for developers and operators to have this power to ensure decentralization of the network, but ideally they would never need to exercise it. -## Username Policy for Fnames +## Fname Usage Policy -Usernames are free to register during beta and are governed by a simple policy that prevents squatting and impersonation. The policy is manually enforced for now since it is not easy to automate and has two tenets: +Fnames are off-chain ENS names issued by the Farcaster protocol to users. They are free to register and governed by a simple policy that prevents squatting and impersonation. The policy is manually enforced for now since it is not easy to automate and has two tenets: 1. If you register an fname connected to a well-known public person or entity, your name may be deregistered. (e.g. `@google`) 2. If don't actively use an fname for 60+ days, your name may be de-registered at our discretion. -While on testnet, the core team will arbitrate conflicts and we expect to formalize a governance system as we approach mainnet. Human intervention is often needed to resolve reasonable conflicts. For instance, you register `@elon` and Elon Musk signs up after you and wants the name. In such a case, we would ask three questions that guide the decision: +Human intervention is often needed to resolve reasonable conflicts. For instance, you register `@elon` and Elon Musk signs up after you and wants the name. In such a case, we would ask three questions that guide the decision: - Is the user active on Farcaster? (e.g. they've made several high quality posts in the last 60 days) - Does the user have a reasonable claim to the name? (e.g. their name also Elon?) - Does the user hold similar, active handles on other networks? (e.g. they own elon on twitter and elon.ens) + +Users who wish to use a fully decentralized namespace can use on-chain ENS names, which are fully supported by the protocol. From 4c1a1358311e0694ae35db5dc194d2b95f5b421f Mon Sep 17 00:00:00 2001 From: Varun Srinivasan Date: Fri, 1 Sep 2023 17:07:42 -0700 Subject: [PATCH 3/3] docs: add horsefacts to contributors --- docs/OVERVIEW.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/OVERVIEW.md b/docs/OVERVIEW.md index 8270905..a93f07a 100644 --- a/docs/OVERVIEW.md +++ b/docs/OVERVIEW.md @@ -129,6 +129,6 @@ Farcaster makes these tradeoffs to achieve a level of decentralization that puts # 7. Acknowledgements -The Farcaster protocol would not have been possible without significant contributions from [Varun Srinivasan](https://github.com/varunsrin), [Dan Romero](https://github.com/danromero), [Shane da Silva](https://github.com/sds), [Sean Yu](https://github.com/seansu4you87), [Gavi Galloway](https://github.com/gsgalloway), [Paul Fletcher-Hill](https://github.com/pfletcherhill), [Sanjay Prabhu](https://github.com/sanjayprabhu), Sagar Dhawan, [Cassandra Heart](https://github.com/CassOnMars) and [Aditya Kulkarni](https://github.com/adityapk00). +The Farcaster protocol would not have been possible without significant contributions from [Varun Srinivasan](https://github.com/varunsrin), [Dan Romero](https://github.com/danromero), [Shane da Silva](https://github.com/sds), [Sean Yu](https://github.com/seansu4you87), [Gavi Galloway](https://github.com/gsgalloway), [Paul Fletcher-Hill](https://github.com/pfletcherhill), [Sanjay Prabhu](https://github.com/sanjayprabhu), Sagar Dhawan, [Cassandra Heart](https://github.com/CassOnMars), [Aditya Kulkarni](https://github.com/adityapk00) and [horsefacts](https://github.com/horsefacts). [^delta-state]: van der Linde, A., Leitão, J., & Preguiça, N. (2016). Δ-CRDTs: Making δ-CRDTs delta-based. Proceedings of the 2nd Workshop on the Principles and Practice of Consistency for Distributed Data. https://doi.org/10.1145/2911151.2911163