Skip to content

[EPIC] Gordian Core Interfaces (UX? Docs? Launch?)  #9

Description

@jackzampolin

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:

  1. 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.
  • MarshalCodec - tm/tmcodec/codec.go
  • ConsensusStrategy - tm/tmconsensus/consensusstrategy.go
  • ConsensusHandler - tm/tmconsensus/handler.go
  • HashScheme - tm/tmconsensus/hashscheme.go
  • SignatureScheme - tm/tmconsensus/signaturescheme.go
  • TimeoutStrategy - tm/tmengine/timeoutstrategy.go
  • gossip.Strategy - tm/tmgossip/strategy.go
  • network.Connection - tm/tmp2p/network.go`
  • network.ConsensusBroadcaster - tm/tmp2p/network.go
  • ActionStore - tm/tmstore/actionstore.go
  • BlockStrore - tm/tmstore/blockstore.go
  • FinalizationStore - tm/tmstore/finalizationstore.go
  • MirrorStore - tm/tmstore/mirrorstore.go
  • RoundStore - tm/tmstore/roundstore.go
  • ValidatorStore - tm/tmstore/validatorstore.go
  • MerkleScheme - gmerkle/merkle.go
  • Signer - gcrypto/signer.go
  • PubKey - gcrypto/pubkey.go
  • CommonMessageSignatureProof - gcrypto/commonmessagesignatureproof.go
  1. 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)

  2. Have a single example of how to implement the crypto signer interfaces in rust using a grpc serivce

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions