The goal of this repo is to create as complicated a network possible and test various scenerios:
- Peer Discovery - so every node is connected to every other node
- Peer Failover - each node which node is not available
- Peer Rediscovery - if a failed node comes back online, then all other nodes need to reconnect with it just like nothing happened
- Store some shared state, which can keep getting updated
- Periodically keep checking if the squad of ID has the right peers - If updated, trigger resharing
- Store multiple wallet addresses under one squad
- Create a smart-contract querying interface - responsible for just that
- Querying Squad State
- Querying Public Key Management state as well
- Make all nodes a part of the same squad (For Testing)
- Implement external request handlers, which can trigger events
- Port this over to the TSS network or port that to this network (DKG + Signing)
- Handle storing & retreving of signed messages (Partial)
- Gracefully handle panics
- Mock smart-contract which has the state of peers + wallets under management
- Plan for Node / Network restarts (SaveData caching)
- DKG should be done as and when the network is inititalized. DKG should be incrementally done as and when new wallets come under management
- Signing Verification should take place, with the SC data as the source of truth (till Phase03)
- Specify the ethereum transaction format for the Transaction Wrapper
- Unwrap, Verify and Sign
- Signatures and metadata should be stored by individual nodes on their respective DBs (Squad level DBs)
- Define how the Rules look like
- Interface for Declaring Rules
- Define how a tx looks like
- Interface for checking if a Tx fits the rules
- Transaction Parser module - Interface
- Rules Parser Format
- Rules / Transaction Enforcer
- Create and Sign ETH transactions
-
Multichain Support (Namespaces)
-
Spend Cap
-
Sender => Max <Token, Value>
-
Store spend data
-
Goup wise Spend limits
-
Sender Groups
-
Recepient Based Rules
-
Groups are Allowed to send tokens to certain recepients
-
Static way to generate transaction hashes
-
Handle multiple signatures with the same TX signature - Use Nonce!
-
Sender based Nonce management
-
Add URD for rules
-
Add CRUD for Spending Caps
-
Read local save data instead of running DKG again
-
Peer ID List
-
Squad IDs / Wallet Addresses
-
Stored Signatures per Squad
-
Fetching sigantures based on Tx ID
- Use external RPCs to check for SCW Owners
- Accepts New Rules for wallets, only from Owners
- Request to get the public key after DKG
- Creating Sender Groups
- Creating
