A fast implementation of a Farcaster Hub, in Rust.
⚠️⚠️ The project is still under active development and nowhere close to being production ready ⚠️⚠️
If you are new to Farcaster Hubs and/or Teleport - here's a quick video that does a high-level overview of the responsibilities of a Hub and where Teleport is at.
Note that the codebase will outpace the video, and things mentioned TODO in the video might have been done now.
There are a few things Teleport is currently capable of, and a lot more it is not currently capable of. In no specific order, Teleport can currently:
A lot is still left to do:
Run the following command to install all the prerequisites for you automatically and if it fails for any reason then simply manually install them.
make install
brew install protobuf or apt install -y protobuf-compiler)cargo install sqlx-cli)Up until recently, there was a Protobuf incompatibility issue with using prost in this codebase compared to ts-proto that is used in Hubble. As such, we have a patched version of prost that is used (Found Here).
In a recent update the Protobuf schema was updated to add a new field that allows us to get by that issue by serializing the message differently. That hasn't been implemented yet in Teleport but technically we don't need to maintain a patched version of prost anymore.
Copy the example .env file using the following command and then place both your farcaster private key and optimism l2 key.
cp env.example .env
make db-create
make db-migrate
cargo run
Make sure to run the following command before pushing commits as this will run all the checks needed to pass the CI workflow.
make verify