-
Notifications
You must be signed in to change notification settings - Fork 329
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
High Level Goal - IBC Relayer #114
Comments
We set milestones at roughly the middle of each month, e.g., September 15, 2020 is the deadline for 0.8-8mo. Do we plan to use this buffer time of two weeks (Sept 15 to end of September) in a specific way or is the misalignment just a coincidence? later edit, answering myself from: #112 (comment)
|
Perhaps we can additionally consider the following: ADR for "Relayer requirements on Light Client" (suggested in informalsystems/tendermint-rs#497). |
One more functionality that I believe would be important for this milestone, in the category "usability," is to automate the relayer bootstrapping procedure. Currently, bootstrapping the relayer involves some manual steps (see description), which can be captured in a simple script and thus improve usability. |
Moved most of the relevant issues from here into #385. |
Summary
High Level Goal for 2020: Production ready IBC Relayer
Proposal
Implementation of the IBC Relayer that provides:
clear specifications
[x] protocol spec: Relayer algorithm specification #84, Create a 'disclosure' log #82
[x] TLA Introduce malicious behaviour in ICS3 TLA+ spec. #70, Recreate the UpdateClient race condition in ICS3 TLA+ spec #71, Relayer TLA+ specification: Multiple relayers and modular ICS protocols #89, TLA+ Relayer invariants/safety properties #106, Specify packet datagram creation and handling #124
[ ] ADR Update Relayer ADR #67
correct and efficient relay algorithm implementation
[ ] concurrency architecture (ADR for Relayer v0 Concurrency Architecture #326) and implementation (Implement the Relayer v0 concurrency architecture #327)
[ ] relayer
config executor
implementation (tbd)[ ] relayer
link
implementation (Relayer link implementation #328)[ ] relayer
chain
implementation for events (tbd)[x] clear separation of concerns Separate light client and relayer concerns #85, Clean up light client related code #90
[ ] Events: Figure out common format for IBC events cosmos/ibc-rs#31 (small dependency on cosmos-sdk)
[ ] finish all queries (serialization/ deserialization with protobuf/ json, etc as required) Implement the chain queries required by the relayer #128
[ ] transaction signing and submission Create and submit a transaction to SDK/TM chain #47, Implement relayer CLI for MsgConnectionOpenInit #206, Relayer CLIs for client create messages #207, Relayer CLIs for client update message #277, Relayer CLIs for connection messages #208,
[ ] integration with secure keystores, e.g. KMS
testability
[ ] testing infrastructure for UT and MBT
[ ] CI Infrastructure to support running integration tests #32
handling bad full nodes
[ ] proof verification (integrate with confio's ics23 in Rust, probably needs some updates) Todo: CommitmentProof implementation for ICS 23 - Commitment module #96 - not needed for end-to-end demonstration of functionality, but needed to detect faulty full nodes ...
[ ] allow connections to multiple RPC nodes
[ ] drop RPC nodes giving bad IBC Events
[ ] drop RPC nodes giving bad IBC Query responses
debugability
[ ] proper error definition, propagation, introspection (e.g. via logs) Error wrapping and conversion between modules #68
[ ] ability to query the relayer state
[ ] comprehensive chain query commands
[ ] ability to perform single step IBC transactions via CLI
[ ] log relayer events to file
usability
[ ] refine the config file specification and implementation Filtering initial requirements and design #69, Align relayer config file with the light client config #99
[ ] documentation: rustdoc (with examples), README.md
[ ] other userdocs
The text was updated successfully, but these errors were encountered: