-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add simple "Set Validators" module #64
Comments
@ethanfrey ready to do this, going to try my hand |
Cool. The first test (unit testable) is that the difference from the transaction is emitted in End Block, look there for the format they wish. After that, we have to adjust the bytes of PubKey for the validator. I think they are go-amino encoded public key. Which is more of less the 32 byte public key, along with a 4 byte prefix identifying it as a ed25519 public key. The server can just pass the bytes without validation if you want to start, later minimal validation. Once you got it unit tested, we can hook it up to tendermint and I will help on the client side test of what actual bytes to put here to add a new validator node. Eg. Query node for its key, do some formatting, build the TX, see validator set properly Update. |
@ethanfrey please take a look at steps and see if they make sense |
@ethanfrey question about protocol:
But we are going to receive another one from tendermint rest api:
In the client we will need to depend on https://github.com/tendermint/tendermint/blob/master/rpc/core/types/responses.go#L72) and then convert to abci.Validator and send to us. |
@ethanfrey I have also stumbled upon protoc issues:
Are vendored, but we seem to use |
@ethanfrey While I was looking at cash implementation I've noticed the following: What do you think about turning orm.Bucket into interface (that also adds that method in both interface and it's original implementation)? That would allow us to get rid of the extra duplicated code. In any case, I will proceed with the extension and then we can decide whether we want to refacfor common code into something reusable or not. |
The problem is the method I am adding is basically a type-safe check that is different for each instance. I would like to abstract this more and have less boilerplate. After the validator PR, if you want to propose a concrete refactor, I will check it out. Basically this is how I try to enforce |
This is a minimal version of #32, with a few purposes:
Requirements:
Steps (WIP):
The text was updated successfully, but these errors were encountered: