A decentralized data exchange platform. For the ideas behind the project, check the website: https://ptt.ai.
Currently implemented a slack-like chat room as a PoC.
Requirements:
- clone repo and install dependencies
$ git clone [email protected]:ailabstw/pttai-next.git
$ cd pttai-next
$ yarn
- Start services
# setup backend config
$ cp backend/env.example backend/.env
# setup frontend config
$ cp frontend/env.example frontend/.env
$ yarn hub
$ yarn gateway
$ yarn replicator
$ yarn frontend
PTT.ai is a network-agnostic, decentralized data exchange platform. Currently we implemented a slack-like chat room as a PoC.
PTT.ai is based on a secure, realtime distributed file system. It utilize a merkle-tree-based file index to efficiently replicate only the data you need.
- Node(P.me): A Node is a personal repository for your data.
- Gateway: A server which hosts multiple nodes. Anyone can run their own gateway instance. Multiple users can share a single gateway to reduce management cost or for authentication.
- Hub: A public server that acts as a "social hub". People discover each other through hubs. Users can freely switch to a new hub without losing their data whenever they want.
- Replicator: A server provides reliable replication for archives, used to replicate friend's archive.
Direct messages are encrypted. However, the keys used to encrypt is stored on the gateway server. To make sure your message is safe, you need to run your own gateway.
We're actively working on the encryption of group messages.
The documentation is a work in progress. check backend/gateway.js
for more detail.
Login with an `id_token. PTT.ai doesn't require you to use a 3rd-party authentication. However, currently only Google oauth is implemented.
Get the current user's archive public key.
Get the list of topics of the current user have posted to.
Create a new topic
Get all messages with a given topic.
Post a new message to a given topic.
Update specified post.
Delete specified post.
Get the list of curators the user trust of a given topic.
Add a new trusted user to the list of curators.
Add a new personal moderation to the topic
Add a new reaction to the topic.
Get the friend list
Add a new key to the friend list
Post a direct message to a friend as an encrypted gossip.
Get user's profile
Update user's profile
Add a new key to the hub.
The MIT License