Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: update outdated content in readme and governance #111

Merged
merged 3 commits into from
Sep 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 10 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
8 changes: 5 additions & 3 deletions docs/GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
2 changes: 1 addition & 1 deletion docs/OVERVIEW.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading