hashcloak / katzenmint-pki

A BFT PKI for the Katzenpost Authority PKI System using Tendermint
Apache License 2.0
2 stars 1 forks source link

Allow for new mixnet nodes to join the network. #15

Open sbc64 opened 4 years ago

sbc64 commented 4 years ago

Currently, the voting authority state reads in the value from the config file and never again updates this list of nodes:

in state.go.newState()

    authorizedMixes       map[[eddsa.PublicKeySize]byte]bool
    authorizedProviders   map[[eddsa.PublicKeySize]byte]string
    authorizedAuthorities map[[eddsa.PublicKeySize]byte]bool
    authorityLinkKeys     map[[eddsa.PublicKeySize]byte]*ecdh.PublicKey

With katzenmint, new authorities, providers, and mixes will need to join the the network.

sbc64 commented 4 years ago

Note:

We could use the blockchain as the database instead of keeping the persistence database. So instead of updating persistance.db we just get the new data from the blockchain. This might have the added benefit that we can drop boltDB

Mikerah commented 4 years ago

No you can't. The blockchain has an underlying DB. I think Tendermint let's you plug and play what DB you want to use for your application. As you can read in the spec, I gave RocksDB and BadgerDB as potential replacements.

sbc64 commented 4 years ago

I should have been more specific, I meant drop the boltDB that is in the katzenpost stack. I wasn't aware that tendermint allows you to pick a db backend, that is nice.