Skip to content

solace-labs/keynet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

105 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

Solace Phase02 Keynet

The goal of this repo is to create as complicated a network possible and test various scenerios:

  1. Peer Discovery - so every node is connected to every other node
  2. Peer Failover - each node which node is not available
  3. Peer Rediscovery - if a failed node comes back online, then all other nodes need to reconnect with it just like nothing happened
  4. Store some shared state, which can keep getting updated

Squad

  • Periodically keep checking if the squad of ID has the right peers - If updated, trigger resharing
  • Store multiple wallet addresses under one squad

TODO

  • 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

Interface

  • 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)

Wrappers

  • 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

Rules

  • 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

Metrics

  • Peer ID List

  • Squad IDs / Wallet Addresses

  • Stored Signatures per Squad

  • Fetching sigantures based on Tx ID

Smart Contract Wallet Integration

  • Use external RPCs to check for SCW Owners
  • Accepts New Rules for wallets, only from Owners
  • Request to get the public key after DKG

Demo UI

  • Creating Sender Groups
  • Creating

About

A pilot network which helps users sign using TSS and a simple Gossip protocol with no incentive mechanism

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Go 98.0%
  • Makefile 2.0%