From f705e54f9102abae7bd6514fc79d9bb21529796f Mon Sep 17 00:00:00 2001 From: wojo Date: Fri, 31 Jan 2025 19:59:50 +0800 Subject: [PATCH] Set valid dht protocol for starknet v01 --- p2p/p2p.go | 12 ++++---- p2p/p2p_test.go | 4 +-- p2p/sync/client.go | 10 +++---- p2p/sync/ids.go | 24 ++++++++-------- p2p/sync/ids_test.go | 67 -------------------------------------------- 5 files changed, 25 insertions(+), 92 deletions(-) delete mode 100644 p2p/sync/ids_test.go diff --git a/p2p/p2p.go b/p2p/p2p.go index 0a613c1206..d65fea75ae 100644 --- a/p2p/p2p.go +++ b/p2p/p2p.go @@ -162,7 +162,7 @@ func NewWithHost(p2phost host.Host, peers string, feederNode bool, bc *blockchai func MakeDHT(p2phost host.Host, addrInfos []peer.AddrInfo, snNetwork *utils.Network) (*dht.IpfsDHT, error) { return dht.New(context.Background(), p2phost, - dht.ProtocolPrefix(p2pSync.DHTPrefixPID(snNetwork)), + dht.V1ProtocolOverride(p2pSync.DHTPID(snNetwork)), dht.BootstrapPeers(addrInfos...), dht.RoutingTableRefreshPeriod(routingTableRefreshPeriod), dht.Mode(dht.ModeServer), @@ -250,11 +250,11 @@ func (s *Service) Run(ctx context.Context) error { } func (s *Service) setProtocolHandlers() { - s.SetProtocolHandler(p2pSync.HeadersPID(s.network), s.handler.HeadersHandler) - s.SetProtocolHandler(p2pSync.EventsPID(s.network), s.handler.EventsHandler) - s.SetProtocolHandler(p2pSync.TransactionsPID(s.network), s.handler.TransactionsHandler) - s.SetProtocolHandler(p2pSync.ClassesPID(s.network), s.handler.ClassesHandler) - s.SetProtocolHandler(p2pSync.StateDiffPID(s.network), s.handler.StateDiffHandler) + s.SetProtocolHandler(p2pSync.HeadersPID(), s.handler.HeadersHandler) + s.SetProtocolHandler(p2pSync.EventsPID(), s.handler.EventsHandler) + s.SetProtocolHandler(p2pSync.TransactionsPID(), s.handler.TransactionsHandler) + s.SetProtocolHandler(p2pSync.ClassesPID(), s.handler.ClassesHandler) + s.SetProtocolHandler(p2pSync.StateDiffPID(), s.handler.StateDiffHandler) } func (s *Service) callAndLogErr(f func() error, msg string) { diff --git a/p2p/p2p_test.go b/p2p/p2p_test.go index 0e10a4c04c..e90d3af8b3 100644 --- a/p2p/p2p_test.go +++ b/p2p/p2p_test.go @@ -81,12 +81,12 @@ func TestMakeDHTProtocolName(t *testing.T) { { name: "sepolia network", network: &utils.Sepolia, - expected: "/starknet/SN_SEPOLIA/sync/kad/1.0.0", + expected: "/starknet/kad/SN_SEPOLIA/1.0.0", }, { name: "mainnet network", network: &utils.Mainnet, - expected: "/starknet/SN_MAIN/sync/kad/1.0.0", + expected: "/starknet/kad/SN_MAIN/1.0.0", }, } diff --git a/p2p/sync/client.go b/p2p/sync/client.go index f224dc4542..9876984fad 100644 --- a/p2p/sync/client.go +++ b/p2p/sync/client.go @@ -106,22 +106,22 @@ func (c *Client) RequestBlockHeaders( ctx context.Context, req *gen.BlockHeadersRequest, ) (iter.Seq[*gen.BlockHeadersResponse], error) { return requestAndReceiveStream[*gen.BlockHeadersRequest, *gen.BlockHeadersResponse]( - ctx, c.newStream, HeadersPID(c.network), req, c.log) + ctx, c.newStream, HeadersPID(), req, c.log) } func (c *Client) RequestEvents(ctx context.Context, req *gen.EventsRequest) (iter.Seq[*gen.EventsResponse], error) { - return requestAndReceiveStream[*gen.EventsRequest, *gen.EventsResponse](ctx, c.newStream, EventsPID(c.network), req, c.log) + return requestAndReceiveStream[*gen.EventsRequest, *gen.EventsResponse](ctx, c.newStream, EventsPID(), req, c.log) } func (c *Client) RequestClasses(ctx context.Context, req *gen.ClassesRequest) (iter.Seq[*gen.ClassesResponse], error) { - return requestAndReceiveStream[*gen.ClassesRequest, *gen.ClassesResponse](ctx, c.newStream, ClassesPID(c.network), req, c.log) + return requestAndReceiveStream[*gen.ClassesRequest, *gen.ClassesResponse](ctx, c.newStream, ClassesPID(), req, c.log) } func (c *Client) RequestStateDiffs(ctx context.Context, req *gen.StateDiffsRequest) (iter.Seq[*gen.StateDiffsResponse], error) { - return requestAndReceiveStream[*gen.StateDiffsRequest, *gen.StateDiffsResponse](ctx, c.newStream, StateDiffPID(c.network), req, c.log) + return requestAndReceiveStream[*gen.StateDiffsRequest, *gen.StateDiffsResponse](ctx, c.newStream, StateDiffPID(), req, c.log) } func (c *Client) RequestTransactions(ctx context.Context, req *gen.TransactionsRequest) (iter.Seq[*gen.TransactionsResponse], error) { return requestAndReceiveStream[*gen.TransactionsRequest, *gen.TransactionsResponse]( - ctx, c.newStream, TransactionsPID(c.network), req, c.log) + ctx, c.newStream, TransactionsPID(), req, c.log) } diff --git a/p2p/sync/ids.go b/p2p/sync/ids.go index 4104924235..7c02454300 100644 --- a/p2p/sync/ids.go +++ b/p2p/sync/ids.go @@ -7,26 +7,26 @@ import ( const Prefix = "/starknet" -func HeadersPID(network *utils.Network) protocol.ID { - return protocol.ID(Prefix + "/" + network.L2ChainID + "/sync/headers/0.1.0-rc.0") +func HeadersPID() protocol.ID { + return Prefix + "/headers/0.1.0-rc.0" } -func EventsPID(network *utils.Network) protocol.ID { - return protocol.ID(Prefix + "/" + network.L2ChainID + "/sync/events/0.1.0-rc.0") +func EventsPID() protocol.ID { + return Prefix + "/events/0.1.0-rc.0" } -func TransactionsPID(network *utils.Network) protocol.ID { - return protocol.ID(Prefix + "/" + network.L2ChainID + "/sync/transactions/0.1.0-rc.0") +func TransactionsPID() protocol.ID { + return Prefix + "/transactions/0.1.0-rc.0" } -func ClassesPID(network *utils.Network) protocol.ID { - return protocol.ID(Prefix + "/" + network.L2ChainID + "/sync/classes/0.1.0-rc.0") +func ClassesPID() protocol.ID { + return Prefix + "/classes/0.1.0-rc.0" } -func StateDiffPID(network *utils.Network) protocol.ID { - return protocol.ID(Prefix + "/" + network.L2ChainID + "/sync/state_diffs/0.1.0-rc.0") +func StateDiffPID() protocol.ID { + return Prefix + "/state_diffs/0.1.0-rc.0" } -func DHTPrefixPID(network *utils.Network) protocol.ID { - return protocol.ID(Prefix + "/" + network.L2ChainID + "/sync") +func DHTPID(network *utils.Network) protocol.ID { + return protocol.ID(Prefix + "/kad/" + network.L2ChainID + "/1.0.0") } diff --git a/p2p/sync/ids_test.go b/p2p/sync/ids_test.go deleted file mode 100644 index 8ad6ae6d3e..0000000000 --- a/p2p/sync/ids_test.go +++ /dev/null @@ -1,67 +0,0 @@ -package sync - -import ( - "testing" - - "github.com/NethermindEth/juno/utils" - "github.com/stretchr/testify/assert" -) - -func TestProtocolIDs(t *testing.T) { - testCases := []struct { - name string - network *utils.Network - pidFunc func(*utils.Network) string - expected string - }{ - { - name: "HeadersPID with SN_MAIN", - network: &utils.Mainnet, - pidFunc: func(n *utils.Network) string { return string(HeadersPID(n)) }, - expected: "/starknet/SN_MAIN/sync/headers/0.1.0-rc.0", - }, - { - name: "EventsPID with SN_MAIN", - network: &utils.Mainnet, - pidFunc: func(n *utils.Network) string { return string(EventsPID(n)) }, - expected: "/starknet/SN_MAIN/sync/events/0.1.0-rc.0", - }, - { - name: "TransactionsPID with SN_MAIN", - network: &utils.Mainnet, - pidFunc: func(n *utils.Network) string { return string(TransactionsPID(n)) }, - expected: "/starknet/SN_MAIN/sync/transactions/0.1.0-rc.0", - }, - { - name: "ClassesPID with SN_MAIN", - network: &utils.Mainnet, - pidFunc: func(n *utils.Network) string { return string(ClassesPID(n)) }, - expected: "/starknet/SN_MAIN/sync/classes/0.1.0-rc.0", - }, - { - name: "StateDiffPID with SN_MAIN", - network: &utils.Mainnet, - pidFunc: func(n *utils.Network) string { return string(StateDiffPID(n)) }, - expected: "/starknet/SN_MAIN/sync/state_diffs/0.1.0-rc.0", - }, - { - name: "DHTPrefixPID with SN_MAIN", - network: &utils.Mainnet, - pidFunc: func(n *utils.Network) string { return string(DHTPrefixPID(n)) }, - expected: "/starknet/SN_MAIN/sync", - }, - { - name: "HeadersPID with SN_SEPOLIA", - network: &utils.Sepolia, - pidFunc: func(n *utils.Network) string { return string(HeadersPID(n)) }, - expected: "/starknet/SN_SEPOLIA/sync/headers/0.1.0-rc.0", - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - result := tc.pidFunc(tc.network) - assert.Equal(t, tc.expected, result) - }) - } -}