Proto commits in NethermindEth/juno

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

Commit:74dc6ed
Author:MaksymMalicki

implement protobuf

Commit:010b16e
Author:MaksymMalicki

protobuf changes

Commit:08efa41
Author:Dat Duong
Committer:GitHub

chore: Remove legacy proto messages (#3065)

The documentation is generated from this commit.

Commit:6c02b5e
Author:rian

wip: autogen basic proto types and use in wal. Tricksy proto

Commit:027499b
Author:rian

wip

Commit:69c559a
Author:AnkushinDaniil
Committer:AnkushinDaniil

Add hash validation in proto file

Commit:b45cae5
Author:Daniil Ankushin
Committer:GitHub

RPC update - add l2 gas (#2335) feat: enhance gas price handling with L2 support and field renaming - Added support for L2 gas prices and renamed gas price fields for clarity. - Updated core components to distinguish between L1 and L2 gas prices: - adapters/core2p2p/block.go: Handle L2 gas prices, renamed fields. - adapters/p2p2core/block.go: AdaptBlockHeader updated for L2. - adapters/p2p2core/receipt.go: Included L2 gas prices in adaptExecutionResources. - adapters/sn2core/sn2core.go: Updated AdaptBlock and adaptGasConsumed. - core/block.go: Renamed fields, updated hash functions. - Updated core data structures: - core/block.go: Introduced L1GasPriceETH, L2GasPriceETH, L1GasPriceSTRK, L2GasPriceSTRK. - core/receipt.go: Added L2GasPrice field to GasConsumed struct. - core/transaction.go: Added L2GasPrice field to DataAvailability struct. - Updated RPC components: - rpc/block.go: AdaptBlockHeader updated with L2 gas prices. - rpc/estimate_fee.go: New FeeEstimate struct, EstimateFeeV0_7 function for compatibility. - Updated tests: - adapters/sn2core/sn2core_test.go: Added assertions for L2 gas prices. - clients/feeder/feeder_test.go: Reflected gas price field changes. - rpc/block_test.go, rpc/estimate_fee_test.go: Added L2 gas-related test cases. - rpc/events_test.go: Updated expected JSON responses.

Commit:2653ae9
Author:Daniil Ankushin
Committer:GitHub

p2p restructure (#2342) Refactor: Restructure `p2p` package. This commit focuses on restructuring the `p2p` package to improve organization and maintainability. Key updates include: 1. **Package Restructure**: - Renamed `peers.go` to `codec.go`. - Refactored the folder structure: - Moved generated protobuf files to a new `gen` directory. - Grouped related files into subdirectories (`peers`, `sync`, etc.). - Simplified and clarified the organization of the `p2p` package. 2. **Adapter Function Updates**: - Updated adapter functions in multiple files (e.g., `block.go`, `class.go`, `felt.go`, `receipt.go`, `state.go`, and `transaction.go`) to reference the `gen` package instead of `spec`. 3. **Import Statement Updates**: - Updated all import statements to replace `spec` with `gen`. 4. **Makefile Changes**: - Added a new `generate-buf` target to support protobuf generation using the `buf` tool. 5. **Protobuf Tooling**: - Switched from `protoc` to `buf` for managing protobuf files. This restructuring streamlines the `p2p` package, enhancing its readability and modularity while transitioning to the `gen` package for consistency across the codebase.

Commit:f99c07f
Author:Amirul Ashraf
Committer:Paweł Nowosielski

Snapsync "static sync" with p2p **This is a squash batch of 23 commits:** - Ashraf Basic snap algo .. Did something + #1925 - p2p client and looking at the syncService - finishing p2p handler - question - protobuf changes - snap server implements handler methods directly - fix snap server tests after refactor - refactor syncer to loop over iterator, add client message handling - p2p complete - no data exchange - Managed to sync ~200MB data - Fix: Trie iteration - test describing how storage of big contracts are responded - Storage ranges - fix unexpected contract change - Tweak message size params, trim logs - limit memory usage & verification - verification bug fix - Add sync mode p2p CLI flag (#2186) - Return struct instead of interface - Change flag usage string - Remove SnapServer interface - Revert makefile - Minor fixes - Update docs - Less logs, verification fixed - code improvements

Commit:a3e662b
Author:Paweł Nowosielski
Committer:weiihann

protobuf changes

Commit:35f6d09
Author:Amirul Ashraf
Committer:weiihann

Ashraf Basic snap algo .. Did something + #1925

Commit:d637844
Author:Daniil Ankushin
Committer:GitHub

L1->L2 message hashes are 256 bit hashes (#2160) * refactor: Update Hash message to use Hash256 type * Regenerate spec * refactor: Update MsgHash to use Hash256 type in AdaptReceipt function

Commit:6185409
Author:Amirul Ashraf
Committer:Paweł Nowosielski

Ashraf Basic snap algo .. Did something + #1925

Commit:7205822
Author:Daniil Ankushin
Committer:GitHub

Update p2p specs (#1985)

Commit:0488991
Author:Amirul Ashraf
Committer:Paweł Nowosielski

Ashraf Basic snap algo .. Did something + #1925 This is a combination of 24 commits.

Commit:e174a66
Author:AnkushinDaniil

spec updated

Commit:65c0d6c
Author:Kirill
Committer:GitHub

Update p2p implementation according to recent spec (#1858)

Commit:e0d4ffb
Author:Amirul Ashraf

Basic snap algo

Commit:0a47a1b
Author:Kirill

Sixth batch

Commit:a0b9083
Author:IronGauntlets
Committer:Kirill

Implement Juno's P2P MVP spec Co-authored-by: Kirill <paltsev.kir@gmail.com>

Commit:7433ae8
Author:IronGauntlets
Committer:Kirill

Fix event.proto

Commit:cb76514
Author:IronGauntlets
Committer:Kirill

Update spec p2p spec juno-mvp branch

Commit:695bedd
Author:IronGauntlets
Committer:Kirill

Update spec p2p spec juno-mvp branch

Commit:af36840
Author:IronGauntlets
Committer:Kirill

wip

Commit:cdad490
Author:Kirill
Committer:Kirill

Change adapters for classes

Commit:946c3e4
Author:IronGauntlets
Committer:Kirill

Remove extra_data and block hash from blockHeader

Commit:9a7d40c
Author:IronGauntlets
Committer:Kirill

Remove extra_data and block hash from blockHeader

Commit:f7795f7
Author:Kirill
Committer:Kirill

Update transaction

Commit:db3259e
Author:Kirill
Committer:Kirill

Update transaction spec

Commit:02ae52e
Author:Kirill
Committer:Kirill

Update tx, class spec and adapters

Commit:4181594
Author:IronGauntlets
Committer:Kirill

Add events to transaction receipts

Commit:73ac0d8
Author:IronGauntlets
Committer:Kirill

Add events to transaction receipts and output to BuiltinCounter

Commit:791d49f
Author:IronGauntlets
Committer:Kirill

Add missing fields to block.proto

Commit:22b081b
Author:IronGauntlets
Committer:Kirill

Add CurrentBlockHeaderRequest and remove "latest" from iterator

Commit:ae5fc5a
Author:Kirill
Committer:Kirill

Add changes to transaction.proto in p2p

Commit:0eb9b68
Author:IronGauntlets
Committer:Kirill

Set blockheader handlers and request header from bootnode Co-authored-by: Kirill <paltsev.kir@gmail.com>

Commit:3739fbf
Author:Ömer Faruk IRMAK
Committer:Ömer Faruk Irmak

Add OP_GET

Commit:0e8810e
Author:Ömer Faruk IRMAK
Committer:Ömer Faruk Irmak

Properly close iterators and transaction created in gRPC

Commit:5a6b72e
Author:Ömer Faruk Irmak
Committer:GitHub

Update p2p proto definitons (#1255) and make each request use seperate pids

Commit:ecb6713
Author:Ömer Faruk Irmak
Committer:GitHub

Allow streaming of proto messages over a single network.Stream (#1081)

Commit:5511e4a
Author:Ömer Faruk Irmak
Committer:GitHub

Add p2p spec and generate Go types from it (#1049)

Commit:9532292
Author:Kirill
Committer:GitHub

grpc interface to kv database (#754)

Commit:832f214
Author:Ömer Faruk Irmak
Committer:GitHub

Reset repository for reimplementation (#420) Co-authored-by: IronGauntlets <aneeque@nethermind.io>

This commit does not contain any .proto files.

Commit:c5cc557
Author:Adrian Tubal Páez Ruiz
Committer:GitHub

Support Invoke Transaction version 1 (#402) The new version 1 of the invoke transaction is added and the old version is managed as version 0. The synchronization process and the RPC are updated to support this new transaction. Co-authored-by: Marcos Antonio Maceo Reyes <marcosmaceowork@gmail.com> Co-authored-by: Tshaka Eric Lekholoane <_@tshaka.co>

Commit:ee54e02
Author:Adrian Tubal Páez Ruiz
Committer:GitHub

Receipts (#382) Fix starknet_getTransactionReceipt RPC function and improve receipts management Co-authored-by: Aneeque <aneeque@nethermind.io> Co-authored-by: Tshaka Eric Lekholoane <_@tshaka.co> Co-authored-by: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com>

Commit:c58249e
Author:Adrian Tubal Páez Ruiz
Committer:GitHub

[RPC] getStateUpdate (#365)

Commit:8d4c892
Author:Adrian Tubal Páez Ruiz
Committer:GitHub

Bug on starknet_call (#370) * Update vm.proto Add the node type enum (Edge or Binary) to the VMTrieNode message Add left and right fields necessary to serialize properly the binary nodes on the python side * Update CairoVM close The Close function erases all the content of the directory used to host all the python files, we only need to delete the generated files * Update vm.go and vm.py to encode BinaryNode in PY * Fix CairoVM serialization * Fix starknet_call output format

Commit:b4a5695
Author:Adrian Tubal Páez Ruiz
Committer:GitHub

State Re-Implementation Added: - New Trie implementation - Refactorization of the synchronization process - Update the RPC implementation I- mplement Starken VM Call

Commit:b1416c9
Author:Jorge Mederos
Committer:GitHub

[RPC] Full rpc implementation and refactoring (#202) * refactor: move felt from common to types * refactor: temporarily move api provided by the json rpc to new file * fix: revert getStorageAt to original boilerplate * bug: rpc was returning result even when error was returned * test: add test for failing rpc method * [RPC] Implement getStorageAt and getCode (#201) * fix: return error from rpc handle * feat: implement starknet_getStorageAt * feat: implement starknet_getCode * test: add test for getStorageAt * test: add tests for starknet_getCode * test: add notests * [RPC] GetBlock (#192) * Initial implementation of GetBlock RPC * Update getBlock RPCs - Add pck/types package - Use the database and services with those new types - Refactor RPCs types * Remove service initialization * Add tests * [RPC] Get Transaction (#209) * feat: [rpc] starknet_getTransactionByHash * feat: [rpc] starknet_getTransactionByBlockHashAndIndex * feat: [rpc] starknet_getTransactionByBlockNumberAndIndex Co-authored-by: Adrian Tubal Páez Ruiz <adriantpaez@gmail.com>

Commit:a19d1f9
Author:Adrian Tubal Páez Ruiz
Committer:GitHub

Add Transaction Receipts (#182) * Add transaction receipts * Add receipts to transactions service * Add tests * Update tests

Commit:0a38b0f
Author:Adrian Tubal Páez Ruiz
Committer:GitHub

Initial implementation of block manager (#149) * Initial implementation of block manager * Update block data types * Update manager and create the service Co-authored-by: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com>

Commit:ba34ea3
Author:Adrian Tubal Páez Ruiz
Committer:GitHub

Services (#165) * Update manager - Change the key type for contractAddress from string to big.Int * Update manager - Add Close method * Add base service structure * Add abi service * Fix bug - Fix bug in condition to check if the service is running * Add abi service tests * Fix coverage and refactor * Refactor * Use protobuf to generate the db models * Update coverage * Add tests for state service * Fix bug * Update coverage * Update coverage * Update models * Remove generate from compile instruction * Update makefile to ignore autogenerated protobuf files * Update coverage * Add database README Co-authored-by: Marcos Antonio Maceo Reyes <marcosmaceowork@gmail.com> Co-authored-by: Marcos Antonio Maceo <35319980+stdevMac@users.noreply.github.com>