These 47 commits are when the Protocol Buffers files have changed:
| Commit: | cba00cd | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
network: Reworded the doc on SyncMultiverseRequest Avoid unclear use of "below".
The documentation is generated from this commit.
| Commit: | 86a0749 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Document a special case of SyncMultiverse In case there are no checkpoint blocks known by the server, it will stream blocks from the genesis, as a way to do full sync.
| Commit: | 0912d6c | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Change parameter fields for SyncMultiverseRequest Use block ID checkpoints instead of a single starting length.
| Commit: | 986f255 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Reorg watch proto in chain-network Reuse protobuf message types between the node and watch protocols: share the definitions of common message types in protobuf package iohk.chain.types, shared between node and watch service packages. Change the namespacing of the code generated by tonic-build to allow reuse in the Rust module system.
| Commit: | 7d41b57 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Remove mempool subscription from watch.proto No need for this functionality right now.
| Commit: | be6264f | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Renamed the client subscription service to Watch The SubscriptionService name is a bit generic and makes stupid generated module names for the service and client implementations of the protocol.
| Commit: | 982a9e3 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Moved the watch protocol to chain-network Removed chain-watch as a separate crate.
| Commit: | a4419b8 | |
|---|---|---|
| Author: | Enzo Cioppettini | |
| Committer: | Mikhail Zabaluev | |
setup basic PoC watch.proto
| Commit: | c51fba7 | |
|---|---|---|
| Author: | Enzo Cioppettini | |
| Committer: | Enzo Cioppettini | |
setup basic PoC watch.proto
| Commit: | b0e7136 | |
|---|---|---|
| Author: | Giacomo Pasini | |
| Committer: | Giacomo Pasini | |
Change PeersResponse format
| Commit: | 2ee7abf | |
|---|---|---|
| Author: | Yevhenii Babichenko | |
| Committer: | Yevhenii Babichenko | |
chain-network: use checkpoints mechanism in PullBlocks similar to PullBlocksToTip
| Commit: | 85dd915 | |
|---|---|---|
| Author: | Yevhenii Babichenko | |
| Committer: | Yevhenii Babichenko | |
chain-network: add PullBlocks endpoint to request a range of blocks
| Commit: | 4d270cc | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Added client side node ID auth to protocol Added RPC method ClientAuth to provide authenticated node ID also from the client side. The server's HandshakeResponse now features a nonce that the client signs to create a signature for its node ID.
| Commit: | 770c385 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Add node ID authentication to protocol handshake
| Commit: | 712545a | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
Remove folders network-core and network-grpc Clean up the code for old tokio 0.1 crates.
| Commit: | 538843a | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Begin porting network to tonic and tokio 0.2 Replacing network-core and network-grpc with a single crate, chain-network. It combines the functionality of two (the protocol abstraction layer in mod core, the gRPC implementation in mod grpc, common data type definitions and error types), ported to tokio 0.2 APIs and tonic/hyper as the gRPC stack.
| Commit: | 6ac0462 | |
|---|---|---|
| Author: | Yevhenii Babichenko | |
bottle in sea network service
| Commit: | b1b9d2e | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Begin porting network to tonic and tokio 0.2 Replacing network-core and network-grpc with a single crate, chain-network. It combines the functionality of two (the protocol abstraction layer in mod core, the gRPC implementation in mod grpc, common data type definitions and error types), ported to tokio 0.2 APIs and tonic/hyper as the gRPC stack.
| Commit: | 076c586 | |
|---|---|---|
| Author: | Vincent Hanquez | |
| Committer: | Vincent Hanquez | |
add peers message in protobuf
| Commit: | 044f713 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
network: Rename Content to Fragment In service type name and the subscription method name of what was named "content" use "fragment" for consistency with other naming.
| Commit: | 1a8c2b0 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
network: Add Handshake method The Handshake RPC method is a way to query the server for the supported protocol and the genesis block hash, so that the client can detect a wrong chain or an incompatible peer.
| Commit: | bebe7ac | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
chain-core, network: Rename Message to Fragment
| Commit: | 90b9d77 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network: PushHeaders and missing blocks event Add a new BlockEvent variant, missing, with a PullHeadersRequest structure that the service can use as a reverse PullHeaders request. Add method PushHeaders to respond to this solicitation by sending up a chain of headers.
| Commit: | bdba264 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network: Added method PullHeaders Reusing some NTT prior art, add a method that pulls blockchain headers between one of the checkpoint IDs of blocks present at the requester, and the ID of a block up to which the chain needs to be retrieved.
| Commit: | 8bc3fd8 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
network: Redesign block subscription for upload Block subscription stream now can retrieve solicitations for blocks from the client, which can fulfill the solictitation with client streaming method UploadBlocks.
| Commit: | 5d3207e | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
Rename repeated field in protobuf type BlockIds Rename id to ids so that it looks more natural in generated code.
| Commit: | 1a19ca3 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network: pass node ID along with subscriptions Change the gRPC protocol and network-core abstractions to pass the subscriber's node ID along with subscription requests. Currently this is to be implemented via gRPC metadata (an HTTP header); later on the ID may need to be verifiable with the connection's TLS certificate. Start with the server side, not yet supported on the client. Drop the sender ID field from Gossip.
| Commit: | cb3dab0 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network: Restore Gossip as batch message For Poldercast to work as per the paper, it's important to receive gossip updates in batches of node messages.
| Commit: | 21b7975 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
Rework the node gossip protocol Make node gossip propagated bidirectionally, like blocks and transactions. Each gossip message carries information on a single node.
| Commit: | 6b9c39d | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network: Renamed TransactionService To ContentService, serving messages.
| Commit: | b2f3bf7 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network-grpc: Remove a disused protobuf type BlockSubscriptionRequest is no more.
| Commit: | 4fee4b4 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network: Introduce bidirectional subscriptions Added bidirectional subscription methods to gRPC protobuf definitions and network-core client API (server support pending).
| Commit: | bb0b27f | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network-grpc: remove announce response types
| Commit: | 90cc3c5 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
Consolidate protobuf in network-grpc Remove codes.proto and move node.proto under network-grpc as the only user of the protobuf files.
| Commit: | 9705d32 | |
|---|---|---|
| Author: | Alexander Vershilov | |
Drop redundant methods.
| Commit: | 871a4e3 | |
|---|---|---|
| Author: | Alexander Vershilov | |
| Committer: | Alexander Vershilov | |
Support announce transactions method.
| Commit: | 69a2226 | |
|---|---|---|
| Author: | Alexander Vershilov | |
| Committer: | Alexander Vershilov | |
Implement block announcement protocol.
| Commit: | dc56c44 | |
|---|---|---|
| Author: | Alexander Vershilov | |
| Committer: | Alexander Vershilov | |
Gossip protocol implementation.
| Commit: | 83a359a | |
|---|---|---|
| Author: | Alexander Vershilov | |
| Committer: | Alexander Vershilov | |
Add get transactions support in grpc.
| Commit: | 7844120 | |
|---|---|---|
| Author: | Alexander Vershilov | |
| Committer: | Alexander Vershilov | |
Introduce protocol conformant API in the network service.
| Commit: | 939a931 | |
|---|---|---|
| Author: | Alexander Vershilov | |
| Committer: | Alexander Vershilov | |
Convert TipRequest to return Header instead of (id,date).
| Commit: | 22d1ddb | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network: Added gRPC method SubscribeToBlocks Designed the subscription API for the block service and its network-core counterpart.
| Commit: | 92d2ebf | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
network: Rename StreamBlocksTo* to PullBlocksTo* "Stream" looks redundant in protobuf, especially in generated names like StreamBlocksToTipStream; "Pull" better reflects the use case.
| Commit: | 2d99761 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Crate network-core Moved the abstract network interface definitions, incubated in network-grpc, to a new dedicated crate network-core. The interfaces rely on enum types generated from protobuf descriptions. For this, the protobuf declarations of enums have been split out into a dedicated package codes.proto which is used by the build script of network-core to generate the types and make them available as module codes.
| Commit: | e0a02b8 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network-grpc: Flatten and simplify the protocol The named wrapper types are redundant, both for their intended purpose and in the wire format. Field ids in a message sufficiently identify the purpose and format of the field value. Therefore, the type definitions in types.proto have been removed. The proto package name has been changed to iohk.chain.node to reflect the now-generic nature of the protocol.
| Commit: | e466769 | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
network-grpc: Redesign for abstract network serialization We cannot rely on From impls to convert between chain types associated with the Node impl and protobuf data types, as these would have to be defined somewhere that is gnostic of both the gRPC network protocol and the concrete chain implementation. Part of the solution is changing the protobuf definitions for basic chain data types to allow opaque serialization. Thankfully, the only such message type that sported specific fields was BlockDate, so this is redefined to carry opaque bytes. At the same time HeaderHash is renamed to BlockId to match the naming used by the chain abstraction traits.
| Commit: | 831db9b | |
|---|---|---|
| Author: | Mikhail Zabaluev | |
| Committer: | Mikhail Zabaluev | |
Initial code for network-grpc server Moved from the internal project and adapted to chain-core definitions. The abstract interface is defined in network_core, to be moved to its own crate.