mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-08 14:24:09 -05:00
3.2 KiB
3.2 KiB
version 0
misc
- random ID param for jsonrpc requests (bin/drk.rs)
- merge cashier branch
- update cashierd.rs to new config handling. note: password param in toml
- sqlcipher: better document install process or otherwise remove friction of using bundled version
- remove default config from binaries and add to the readme
- delete zkvm
- SOL bridge poc
- Optional Cargo "features" for cashierd/darkfid, to {en,dis}able different chains
- delete ALL old directories and files
- fix spelling mistakes
- make cashier asset vector
deposit
- drk: key generation
- drk: deposit cli option
- darkfid: check addresses are valid
- darkfid: send drk public key to cashierd.rs over tcp, triggered by drk.rs
- cashierd: receive BTC, mint dBTC (see tx.rs)
- cashierd: push tx to rocksdb (type: deposit, signed by cashier key)
- cashierd: watch address for deposit
- cashierd: resume watch after restart
- darkfid: poll gateway for new tx
- darkfid: for every new coin received, add to merkle tree
- darkfid: decode tx
- darkfid: perform state transition function
- darkfid: compute merklepath need to spend coin (see tx.rs)
withdraw
- drk: withdraw cli option
- darkfid: check address is valid
- darkfid: send cashout request to cashier with btc pub key
- cashierd: receive cashout request, reply with drk pub key
- darkfid: send dbtc to the cashier drk pub key
- cashierd: send the received coins to the main address of cashierd
- cashierd: burn dbtc, send back btc (see tx.rs)
drk -> drk
- drk: transfer cli option
- darkfid: construct a new spend tx
- darkfid: check address is valid
- darkfid: build tx
- darkfid: verify tx
- darkfid: state transition function
- darkfid: send tx data to rocksdb
research
Open research questions.
light-clients
- Fast efficient batch DH technique. Currently all new transactions need to be scanned. There should be a means of efficiently batching this test for light clients initially syncing against a server.
- Anonymous fetch using an Oblivious-Transfer protocol. Light clients potentially leak info to servers based on the data they request, but with an OT protocol they do not reveal exactly what they are requesting.
cryptography
- FFT for polynomial multiplication
- finish bulletproofs impl
- halo2 lookup
- read groth permutation paper
blockchain
- basic sequencer architecture design
- basic DHT design
- consensus algorithm
- solve double verify problem (potentially need need a payment inside the contract to handle exceptions)
- research polygon design
- code up a simple demo
product
- first MPC services
- DAO
- auctions
- staking. Look up how TORN was distributed anonymously.
- swaps
- token issuance
- NFTs
dev
- make bitreich halo2 impl
halo2
- mint circuit poc
- burn circuit poc
- research port from jubjub to pasta (success)
- research port from blake2b to sinsemilla and/or poseidon
- solve poseidon gadget to hash >2 elements at a time
- integrate with actual codebase
org
- clean up shared repo and migrate to wiki