Proto commits in starknet-io/starknet-p2p-specs

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

Commit:5fc6305
Author:Asmaa Magdoub

Sync consensus proto and readme with sequencer repo - Add signature field to Vote message - Expand ProposalInit with block metadata (moved from BlockInfo) - Remove BlockInfo message - Add CommitmentParts, L2GasInfo, ProposalFinPayload messages - Add executed_transaction_count and fin_payload to ProposalFin - Simplify ProposalPart to init/fin/transactions only - Update consensus.md to reflect new message ordering

The documentation is generated from this commit.

Commit:411d992
Author:avivg-starkware
Committer:GitHub

InvokeV3WithProof: change proof from uint32 to bytes (#78)

Commit:4bbcd9f
Author:Aviv Greenburg

InvokeV3WithProof: change proof from uint32 to bytes

Commit:77b8f0b
Author:avivg-starkware
Committer:GitHub

Merge pull request #76 from starknet-io/avivg/consensus_tx_documentation modify ConsensusTransaction documentation

Commit:062447d
Author:Aviv Greenburg

modify ConsensusTransaction documentation

Commit:27f633b
Author:Aviv Greenburg
Committer:Aviv Greenburg

modify InvokeV3 and add InvokeV3WithProof to allow client side proving

Commit:e8f49d8
Author:Guy Nir
Committer:guy-starkware

remove eth/strk conversion from block info, add prices in fri/wei

Commit:e4178f0
Author:Guy Nir

remove eth/strk conversion from block info, add prices in fri/wei

Commit:4ef5145
Author:Asmaa Magdoub
Committer:Asmaa Magdoub

update consensus proto and readme files

Commit:41a8181
Author:Matan Markind
Committer:Matan Markind

Add executed_transaction_count to consensus spec

Commit:a75602f
Author:Matan Markind
Committer:Matan Markind

Add protocol describing the semantics of the consensus network messages

Commit:71efc7e
Author:Shahak Shama
Committer:Shahak Shama

add l2 gas with backward compatibility

Commit:1e8cc53
Author:ShahakShama
Committer:GitHub

add l2 gas support (#64)

Commit:3531126
Author:Alon-Lukatch-Starkware
Committer:GitHub

Add CI to validate proto compilation (#59) * add ci to validate proto compilation * Setup CI and fixes to some .proto files (#61) * add quotations on main branch name * cr * testing changes * cleaning up and swaping to Noelware proto instead of installing * test protoc version * add missing syntax on capabilities.proto * attempting to fix compilation errors * adding Classes message to snapshot.proto * experimental-codegen * kernel * temp file instead of /dev/null * package transaction duplication * disable java compilation * remove package declaration * install protoc-gen-go before compiling to go * add option go_package specification * clean up * testing find *.proto * find proto step * compiling each file seperatly * apply changes to all compilations * clean comments * add --fatal_warnings flag to error on warnings * move state.proto back into sync dir * fix CR comments

Commit:371699b
Author:Alon Lukatch

add option go_package specification

Commit:7da8cb3
Author:Alon Lukatch
Committer:Alon Lukatch

install protoc-gen-go before compiling to go

Commit:c53b929
Author:Alon Lukatch

remove package declaration

Commit:5293efb
Author:Alon Lukatch
Committer:Alon Lukatch

disable java compilation

Commit:7a3c2ad
Author:Alon Lukatch

package transaction duplication

Commit:6a43746
Author:Alon Lukatch
Committer:Alon Lukatch

adding Classes message to snapshot.proto

Commit:6577842
Author:Alon Lukatch

attempting to fix compilation errors

Commit:80a13ee
Author:Alon Lukatch

add missing syntax on capabilities.proto

Commit:40aef58
Author:ShahakShama
Committer:GitHub

fix bug in ConsensusStreamId (#53)

Commit:9713059
Author:Shahak Shama
Committer:Shahak Shama

move TransactionInBlock to sync directory

Commit:2728d90
Author:ShahakShama
Committer:GitHub

add mempool and consensus transaction objects (#54)

Commit:eb4716b
Author:ShahakShama
Committer:GitHub

put all sync related files in sync directory (#47)

Commit:2b370d7
Author:guy-starkware
Committer:GitHub

fix: update protobuf specs with new consensus streaming (#52) * fix: update protobuf specs with new consensus streaming * fix: update the proto with ProposalPart and StreamMessage * fix: address reviewer comments * fix: further reviewer comments

Commit:cfcbd37
Author:KOVACS Krisztian
Committer:KOVACS Krisztian

L1 handler message hash values are 256 bit This change introduces a new `Hash256` message type to describe fields that are hash values but cannot be represented as a Felt252. For example, message hashes for L1 messages are defined as Keccak256 hashes: https://docs.starknet.io/architecture-and-concepts/network-architecture/messaging-mechanism/#hashing_l1-l2 All other uses of the `Hash` message are _indeed_ hash function output either from the Starknet Poseidon or Pedersen hashes, so `Hash` should be parsed as a Felt252 value.

Commit:08ff6ca
Author:Shahak Shama
Committer:ShahakShama

add basic sync capabilities

Commit:5372d93
Author:ShahakShama
Committer:GitHub

Merge pull request #42 from starknet-io/shahak/transaction_hash_and_class_hash add transaction hash and class hash

Commit:21a3ca9
Author:CHr15F0x
Committer:GitHub

feat: add fields associated with starknet 0.13.2 upgrade (#40)

Commit:127f86a
Author:Shahak Shama

add transaction hash and class hash

Commit:cc9c520
Author:Matan Markind

Add proto for generic streaming.

Commit:c39d1dd
Author:Ittay Dror
Committer:Ittay Dror

comments clarifications

Commit:d4033ff
Author:Ittay Dror
Committer:Ittay Dror

difficulty comment

Commit:d7c86ae
Author:Ittay Dror
Committer:Ittay Dror

increased difficulty

Commit:4459028
Author:Ittay Dror
Committer:Ittay Dror

comments clarifications

Commit:0a0ed57
Author:Ittay Dror
Committer:Ittay Dror

discovery messages

Commit:52c3ee5
Author:Shahak Shama
Committer:Shahak Shama

add broadcasted transaction

Commit:c0199af
Author:Matan Markind

Remove parent_hash as we already have (block_number, fork_id). Also remove block_hash from ProposalFin. The fear is that some validators will mistakenly accept this instead of calculating and confirming it on their own.

Commit:6954e1c
Author:Matan Markind
Committer:Matan Markind

Initial draft of consensus messages. This is set up for Proposal streaming and voting. Certificates for a quorum are part of the sync protocol, not consensus. Peer state sharing is considered a future optimization.

Commit:69089e4
Author:Shahak Shama
Committer:Shahak Shama

Add detailed description to all protocols.

Commit:38b5b3a
Author:Shahak Shama
Committer:Shahak Shama

Change header in order to support 0.13.1 blocks

Commit:7b2cd50
Author:Shahak Shama

remove redundant spacing

Commit:dd0e217
Author:Shahak Shama
Committer:Shahak Shama

Change header in order to support 0.13.1 blocks

Commit:27d782a
Author:Shahak Shama
Committer:Shahak Shama

change time to unix encoding

Commit:dfad4d3
Author:ShahakShama
Committer:GitHub

remove repeated, add deployed and replaced contracts, remove delimeters, remove fin error message, unite signatures with header (#27)

Commit:17ada52
Author:CHr15F0x
Committer:GitHub

revert: adding consumed message in receipt common (#22) Refs: f47ec7c

Commit:5b004af
Author:IronGauntlets
Committer:Aneeque

Rename parent_header to parent_hash in BlockHeader

Commit:668048e
Author:IronGauntlets
Committer:Aneeque

Add protocol_version and gas_price to BlockHeader

Commit:3f9b5b7
Author:Krzysztof Lis
Committer:Krzysztof Lis

revert: adding consumed message in receipt common Refs: f47ec7c

Commit:f47ec7c
Author:ArielElp
Committer:GitHub

Merge pull request #17 from starknet-io/IronGauntlets/update-receipts Update receipt.proto (#17) Co-Authored-By: Krzysztof Lis <klis33@gmail.com>

Commit:8c3fe46
Author:ArielElp
Committer:GitHub

Merge pull request #12 from kirugan/kirugan/update-transaction-spec2 Changes to transaction spec (#12)

Commit:eb23228
Author:Aneeque
Committer:GitHub

Add Transaction hash to Event message (#18) Co-authored-by: Krzysztof Lis <klis33@gmail.com>

Commit:bbb444e
Author:IronGauntlets
Committer:IronGauntlets

Add Transaction hash to Event message Co-authored-by: Krzysztof Lis <klis33@gmail.com>

Commit:82e2112
Author:IronGauntlets
Committer:IronGauntlets

Add Transaction hash to Event message Co-authored-by: Krzysztof Lis <klis33@gmail.com>

Commit:8378413
Author:IronGauntlets
Committer:IronGauntlets

Add output to Receipt.ExecutionResources

Commit:ebc38d1
Author:IronGauntlets
Committer:IronGauntlets

Rename receipt to type to avoid overloading names

Commit:16e59cb
Author:IronGauntlets
Committer:IronGauntlets

Add MessageToL2 for Receipt.Common Co-authored-by: Krzysztof Lis <klis33@gmail.com>

Commit:0d681b2
Author:IronGauntlets
Committer:IronGauntlets

Add `CurrentBlockHeaderRequest{}` The response to `CurrentBlockHeaderRequest{}` is the peer's local current header. This can be used to get a rough idea of what the latest block is as viewed by other peers on the network. The header can be compared with a subset of peers to determine an efficient way of pulling blocks from the network while syncing. Initially, we modified the iteration message to include a `latest` option, however, since the iteration message is shared by multiple requests it didn't make sense for each of the messages to have access to it.

Commit:0f91ff9
Author:IronGauntlets
Committer:IronGauntlets

Add `deployed_contracts` and `replaced_classes` to `StateDiff` To verify the state diff commitment we need to have access to all the fields present in the `StateDiff` returned by the feeder gateway. Therefore, we need to have `deployed_contract` and `replaced_classes` in the `StateDiff` messages. The reason for not including the `DeclaredV0Classes` and `DeclaredV1Classes` is because these can be derived from the `Classes` message, which all Cairo0 and Cairo1 classes can be mapped to `DeclaredV0Classes` and `DeclaredV1Classes`, respectively.

Commit:738c29e
Author:IronGauntlets

Add protocol_version and gas_price to BlockHeader

Commit:bcf2686
Author:IronGauntlets

Rename parent_header to parent_hash in BlockHeader

Commit:eb9592b
Author:IronGauntlets
Committer:IronGauntlets

Add output to Receipt.ExecutionResources

Commit:88a69fd
Author:IronGauntlets
Committer:IronGauntlets

Rename receipt to type to avoid overloading names

Commit:95ec8e8
Author:IronGauntlets
Committer:IronGauntlets

Add MessageToL2 for Receipt.Common Co-authored-by: Krzysztof Lis <klis33@gmail.com>

Commit:b81f831
Author:IronGauntlets
Committer:IronGauntlets

Add `CurrentBlockHeaderRequest{}` The response to `CurrentBlockHeaderRequest{}` is the peer's local current header. This can be used to get a rough idea of what the latest block is as viewed by other peers on the network. The header can be compared with a subset of peers to determine an efficient way of pulling blocks from the network while syncing. Initially, we modified the iteration message to include a `latest` option, however, since the iteration message is shared by multiple requests it didn't make sense for each of the messages to have access to it.

Commit:2759ac2
Author:IronGauntlets

Add `deployed_contracts` and `replaced_classes` to `StateDiff` To verify the state diff commitment we need to have access to all the fields present in the `StateDiff` returned by the feeder gateway. Therefore, we need to have `deployed_contract` and `replaced_classes` in the `StateDiff` messages. The reason for not including the `DeclaredV0Classes` and `DeclaredV1Classes` is because these can be derived from the `Classes` message, which all Cairo0 and Cairo1 classes can be mapped to `DeclaredV0Classes` and `DeclaredV1Classes`, respectively.

Commit:0fd03a8
Author:Kirill

Address comments for transaction changes from another PR-s

Commit:60d1785
Author:Kirill
Committer:Aneeque

Remove unnecessary fields

Commit:f3e4d4c
Author:Kirill
Committer:Aneeque

Add contract_class_version field to Cairo1Class message

Commit:946dabc
Author:Kirill
Committer:Aneeque

Fix name and order of fields in Cairo1EntryPoints

Commit:1ab77d2
Author:Kirill
Committer:Aneeque

Update class definitions

Commit:fa38a31
Author:Kirill
Committer:Aneeque

Remove class_hash from invoke transactions

Commit:b699325
Author:Kirill
Committer:Aneeque

Added nonce field for some of transaction types

Commit:595b008
Author:Kirill
Committer:Aneeque

Change tags for some of transaction fields

Commit:1692596
Author:IronGauntlets
Committer:IronGauntlets

Remove extra_data and hash from BlockHeader

Commit:3da1088
Author:IronGauntlets

Add missing block header and body fields The block header is updated to allow for the P2P spec to be compatible with the RPC spec. Before these changes, p2p spec was not enough to serve to block RPC requests. Block bodies include Transactions and Receipts because RPC requires the block to have transactions and receipts. A peer could retrieve them in a separate request, however, since block bodies are retrieved over multiple messages I don't see much benefit in requesting them separately. Also, note Events were added to Receipt common because `BlockID` is not enough to determine which event belongs to which receipt. We require the events for the bloom filter.

Commit:9e638e8
Author:IronGauntlets

Add `CurrentBlockHeaderRequest{}` The response to `CurrentBlockHeaderRequest{}` is the peer's local current header. This can be used to get a rough idea of what the latest block is as viewed by other peers on the network. The header can be compared with a subset of peers to determine an efficient way of pulling blocks from the network while syncing. Initially, we modified the iteration message to include a `latest` option, however, since the iteration message is shared by multiple requests it didn't make sense for each of the messages to have access to it.

Commit:da99b2e
Author:ittayd

removed BlockID from header responses as it is redundant

Commit:289f047
Author:ittayd

reintroduced BlockID, type clarifications

Commit:6ca3d60
Author:ittayd

added contracts and classes roots

Commit:08c041f
Author:ittayd

added block hash as identity

Commit:4595ada
Author:ittayd

alignment

Commit:5beaa4d
Author:ittayd

moved to flattened transaction structure

Commit:3e2aad4
Author:ittayd

removed included txs and added handling of mempool reorg

Commit:f012cd7
Author:ittayd

major feedback overhaul

Commit:4bed2bb
Author:ittayd

added comment on mempool

Commit:3022bea
Author:ittayd

misc

Commit:4955497
Author:ittayd
Committer:ittayd

wqrearrange files

Commit:55d15a7
Author:ittayd

feedback changes checkpoint

Commit:8a0a050
Author:ittayd

incorporated feedback

Commit:4b876f8
Author:ittayd

added receipt, fixes

Commit:f667941
Author:ittayd

revamped messages. initial pass. no documentation updates

Commit:854bf3b
Author:Lior Schejter

Draft spec for synching txn pool

Commit:8e1ddde
Author:Lior Schejter

Spec for propagating a new transaction. Also fixing the InvokeTransaction message - include a nonce.

Commit:d46a920
Author:Lior Schejter

protobuf definitions to separate proto files