Proto commits in input-output-hk/jormungandr

These 15 commits are when the Protocol Buffers files have changed:

Commit:a00bab0
Author:Dariusz Kijania
Committer:GitHub

[4/5] Extract jormungandr-automation out of jormungandr-testing-utils (#3760) * create new project thor * update integration tests after wallet and sender migration * create new project thor New crate consist of all wallet and fragment sender related structs * rename jormungandr_testing_utils to jormungandr-automation clean up location of modules: move all jormungandr structs under jormungandr module * move generators from jormungandr-automation to mjolnir * update workspace after renaming * cargo clippy * add newline to thor/Cargo.toml - clippy warning * update Cargo.lock * remove not used version method

The documentation is generated from this commit.

Commit:794f711
Author:Enzo Cioppettini
Committer:GitHub

Add chain watch grpc tests (#3702) add chain-watch basic integration tests * update proto files to latest chain-network * tests: add JormungandrWatchClient wrapper * move break condition to the end * remove needless return * forward errors to subscription consumers * fix race in sync_multiverse test * add dbg! statements in test assert * keep only the latest tip notification * improve watch client debug logs * extract condvar to a typedef * sleep for a bit before querying the logs

Commit:cd13d05
Author:Giacomo Pasini

Update grpc mock server to latest specs

Commit:25d9081
Author:Mikhail Zabaluev
Committer:Mikhail Zabaluev

Put a copy of node.proto into -testing-utils This will be the reference gRPC manifest for tests, to control against unintended changes in the chain-libs libraries and provide source for the independently generated protocol implementation.

Commit:317b21c
Author:Mikhail Zabaluev

Removed the old protobuf files The gRPC implementation now uses the definitions in the network-proto directory of cardano-deps.

This commit does not contain any .proto files.

Commit:4707031
Author:Mikhail Zabaluev

grpc: s/Top/Tip/

Commit:ec4061e
Author:Mikhail Zabaluev
Committer:Mikhail Zabaluev

grpc: Add method StreamBlocksToTop This method provides a way to pull new blocks from a single peer that is easier to use than GetBlocks which enables more complex optimizations.

Commit:c27dc9a
Author:Mikhail Zabaluev
Committer:Mikhail Zabaluev

grpc: Redesigned block retrieval API As a result of protocol specification discussions at the Cambridge rustival, a more nuanced API for retrieving blocks and headers from peers has been specified. The GetBlocks method is made more performant to implement, allowing batch retrieval given only the target tip and batch offset/size information. The new GetHeaders method allows retrieving only block headers for more lightweight pre-validation, as well as retrieving block hash information at select points back in peer's block storage to efficiently converge on a branch point.

Commit:1643c2c
Author:Mikhail Zabaluev

grpc: two-step transaction sending API Instead of SetTransaction, make two methods: - ProposeTransactions sends a vector of transaction ids, receives back a vector of ids and statuses saying whether the transactions have already been recorded by the recipient. - RecordTransaction sends a single transaction, expecting it to be recorded as new.

Commit:e104a7b
Author:Mikhail Zabaluev

grpc: Add SetTransaction request Add a gRPC request to propose transactions between nodes.

Commit:e6dfd74
Author:Mikhail Zabaluev
Committer:Mikhail Zabaluev

Play with option idempotency_level on a suitable gRPC method This does not seem to make a difference to the generated code, but it is a useful annotation.

Commit:7c17e0b
Author:Mikhail Zabaluev
Committer:Mikhail Zabaluev

protobuf: Add package names prost panics on not having them.

Commit:be3376a
Author:Mikhail Zabaluev
Committer:Mikhail Zabaluev

Don't mean Block to have fields header and body The whole block payload is going to be opaque for the network protocol.

Commit:a43c873
Author:Mikhail Zabaluev
Committer:Mikhail Zabaluev

First workable gRPC/protobuf definitions Added proto3 definitions for gRPC service Node offering method Tip. The response for tip has fields with types defined in types.proto, meant for common type definitions of the blockchain protocol.

Commit:61242c7
Author:Mikhail Zabaluev
Committer:Mikhail Zabaluev

protobuf: Add method GetBlocks and associated messages This allows us to exercise code generation for repeated fields and streamed responses.