A key part of gordian is the ability to easily modify subsystems to suit the need of the application. This feature is enabled by the design of the codebase with a focus on modularity. In order to help kickstart external contributions and reduce friction for new users we should:
- Have an explainer doc with all the core interfaces and their functions w/in the codebase. Audience for this doc is developers either implementing gordian in their SDK app (i.e. explains how to compose the different interfaces) or developers looking to implement these interfaces.
-
List all existing implementations for these interfaces and ideas for future work. Ideally this points out which interface implementations are "production" ready and/or "help wanted". We should also write issues for each help wanted with pointers on how to get started on that particular interface. (cc @jpb, @beckettsean)
-
Have a single example of how to implement the crypto signer interfaces in rust using a grpc serivce
A key part of gordian is the ability to easily modify subsystems to suit the need of the application. This feature is enabled by the design of the codebase with a focus on modularity. In order to help kickstart external contributions and reduce friction for new users we should:
MarshalCodec-tm/tmcodec/codec.goConsensusStrategy-tm/tmconsensus/consensusstrategy.goConsensusHandler-tm/tmconsensus/handler.goHashScheme-tm/tmconsensus/hashscheme.goSignatureScheme-tm/tmconsensus/signaturescheme.goTimeoutStrategy-tm/tmengine/timeoutstrategy.gogossip.Strategy-tm/tmgossip/strategy.gonetwork.Connection -tm/tmp2p/network.go`network.ConsensusBroadcaster-tm/tmp2p/network.goActionStore-tm/tmstore/actionstore.goBlockStrore-tm/tmstore/blockstore.goFinalizationStore-tm/tmstore/finalizationstore.goMirrorStore-tm/tmstore/mirrorstore.goRoundStore-tm/tmstore/roundstore.goValidatorStore-tm/tmstore/validatorstore.goMerkleScheme-gmerkle/merkle.goSigner-gcrypto/signer.goPubKey-gcrypto/pubkey.goCommonMessageSignatureProof-gcrypto/commonmessagesignatureproof.goList all existing implementations for these interfaces and ideas for future work. Ideally this points out which interface implementations are "production" ready and/or "help wanted". We should also write issues for each help wanted with pointers on how to get started on that particular interface. (cc @jpb, @beckettsean)
Have a single example of how to implement the crypto signer interfaces in rust using a grpc serivce