mirror of
https://github.com/Discreetly/server.git
synced 2026-01-09 12:37:58 -05:00
78 lines
2.3 KiB
Markdown
78 lines
2.3 KiB
Markdown
# ZK-Chat v2
|
|
|
|
## Credential Storage
|
|
* Localstorage
|
|
* Start with this, its easy, but not super secure
|
|
* Cryptkeeper?
|
|
* Sismo?
|
|
* Zupass?
|
|
* Walletconnect/metamask?
|
|
|
|
## Group Creation
|
|
|
|
* Admin (me) can make groups
|
|
* by invite code
|
|
* Permission to add 1 identity commitment
|
|
* Gated Room Ideas (that you can watch, but can't participate in)
|
|
* Steam Games!
|
|
* ZK Stamps!
|
|
* Events!
|
|
* Devconnect
|
|
|
|
|
|
### Types of Rooms/Groups
|
|
| Type | Read | Write | Encrypted | Centralized | RLN Protected |
|
|
| ------- | ------------- | ------------------------------- | ------------------- | ----------- | ------------- |
|
|
| Gated | Y | via link/code for specific room | N | Y | Y |
|
|
| ------- | ------------- | ------------------------------- | ------------------- | ----------- | ------------- |
|
|
| Public? | Y | via link/code for all rooms | N | Y | Y |
|
|
| Private | via link/code | via link/code for specific room | N | Y | Y |
|
|
| Secure | via link/code | via link/code for specific room | Y (shared password) | Y | Y |
|
|
| DM-P2P | via link/code | via link/code for specific room | Y (shared password) | N (p2p) | ? |
|
|
|
|
* Start with Gated Rooms
|
|
|
|
## Open Questions
|
|
* P2P v Centralized?
|
|
* Rate Limits?
|
|
* Group Membership on contract?
|
|
* Staking by tiers with different rate limits?
|
|
* Should messages be ephemeral/temporary? (the last day?)
|
|
|
|
### Front End
|
|
discreetly.chat will be the front end and backend
|
|
#### Stack
|
|
* Nuxtjs
|
|
* websockets
|
|
|
|
#### Login
|
|
* Cryptkeeper
|
|
* Metamask
|
|
* Walletconnect
|
|
* Sismo
|
|
* Zupass
|
|
|
|
### Back End
|
|
discreetly.chat will be the front end and backend
|
|
|
|
stakers.chat will be a standalone backend for eth stakers
|
|
|
|
#### Stack
|
|
* Javascript / Typescript
|
|
* Node?
|
|
* Libp2p?
|
|
* Shorter development cycle
|
|
* Dev process is annoying
|
|
* One language stack which is nice
|
|
* Python
|
|
* Library compatibility issues with RLNjs and maybe any other ZK libraries
|
|
* I could write it really fast
|
|
* I miss python
|
|
|
|
#### Database
|
|
|
|
* Libp2p?
|
|
* Waku?
|
|
* IPFS?
|
|
* Firebase?
|
|
* SQLite? <- Leaning this way, keep all config/registration stuff in sqlite, and all messages in RAM/ephemeral |