mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 13:28:01 -05:00
* `logProposedBlock`: Fix log. Before, the value of the pointer to the function were printed for `blockNumber` instead of the block number itself. * Add blob prefix before sidecars. In order to prepare for data columns sidecars. * Verification: Add log prefix. * `validate_aggregate_proof.go`: Add comments. * `blobSubscriber`: Fix error message. * `registerHandlers`: Rename, add comments and little refactor. * Remove duplicate `pb` vs. `ethpb` import. * `rpc_ping.go`: Factorize / Add comments. * `blobSidecarsByRangeRPCHandler`: Do not write error response if rate limited. * `sendRecentBeaconBlocksRequest` ==> `sendBeaconBlocksRequest`. The function itself does not know anything about the age of the beacon block. * `beaconBlocksByRangeRPCHandler`: Refactor and add logs. * `retentionSeconds` ==> `retentionDuration`. * `oneEpoch`: Add documentation. * `TestProposer_ProposeBlock_OK`: Improve error message. * `getLocalPayloadFromEngine`: Tiny refactor. * `eth1DataMajorityVote`: Improve log message. * Implement `ConvertPeerIDToNodeID`and do note generate random private key if peerDAS is enabled. * Remove useless `_`. * `parsePeersEnr`: Fix error mesages. * `ShouldOverrideFCU`: Fix error message. * `blocks.go`: Minor comments improvements. * CI: Upgrade golanci and enable spancheck. * `ConvertPeerIDToNodeID`: Add godoc comment. * Update CHANGELOG.md Co-authored-by: Sammy Rosso <15244892+saolyn@users.noreply.github.com> * Update beacon-chain/sync/initial-sync/service_test.go Co-authored-by: Sammy Rosso <15244892+saolyn@users.noreply.github.com> * Update beacon-chain/sync/rpc_beacon_blocks_by_range.go Co-authored-by: Sammy Rosso <15244892+saolyn@users.noreply.github.com> * Update beacon-chain/sync/rpc_blob_sidecars_by_range.go Co-authored-by: Sammy Rosso <15244892+saolyn@users.noreply.github.com> * Update beacon-chain/sync/rpc_ping.go Co-authored-by: Sammy Rosso <15244892+saolyn@users.noreply.github.com> * Remove trailing whitespace in godoc. --------- Co-authored-by: Sammy Rosso <15244892+saolyn@users.noreply.github.com>
84 lines
2.4 KiB
Go
84 lines
2.4 KiB
Go
package p2p
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/ethereum/go-ethereum/crypto"
|
|
"github.com/ethereum/go-ethereum/p2p/enode"
|
|
"github.com/libp2p/go-libp2p/core/peer"
|
|
"github.com/prysmaticlabs/prysm/v5/config/params"
|
|
"github.com/prysmaticlabs/prysm/v5/testing/assert"
|
|
"github.com/prysmaticlabs/prysm/v5/testing/require"
|
|
logTest "github.com/sirupsen/logrus/hooks/test"
|
|
)
|
|
|
|
// Test `verifyConnectivity` function by trying to connect to google.com (successfully)
|
|
// and then by connecting to an unreachable IP and ensuring that a log is emitted
|
|
func TestVerifyConnectivity(t *testing.T) {
|
|
params.SetupTestConfigCleanup(t)
|
|
hook := logTest.NewGlobal()
|
|
cases := []struct {
|
|
address string
|
|
port uint
|
|
expectedConnectivity bool
|
|
name string
|
|
}{
|
|
{"142.250.68.46", 80, true, "Dialing a reachable IP: 142.250.68.46:80"}, // google.com
|
|
{"123.123.123.123", 19000, false, "Dialing an unreachable IP: 123.123.123.123:19000"},
|
|
}
|
|
for _, tc := range cases {
|
|
t.Run(fmt.Sprintf(tc.name),
|
|
func(t *testing.T) {
|
|
verifyConnectivity(tc.address, tc.port, "tcp")
|
|
logMessage := "IP address is not accessible"
|
|
if tc.expectedConnectivity {
|
|
require.LogsDoNotContain(t, hook, logMessage)
|
|
} else {
|
|
require.LogsContain(t, hook, logMessage)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestSerializeENR(t *testing.T) {
|
|
params.SetupTestConfigCleanup(t)
|
|
t.Run("Ok", func(t *testing.T) {
|
|
key, err := crypto.GenerateKey()
|
|
require.NoError(t, err)
|
|
db, err := enode.OpenDB("")
|
|
require.NoError(t, err)
|
|
lNode := enode.NewLocalNode(db, key)
|
|
record := lNode.Node().Record()
|
|
s, err := SerializeENR(record)
|
|
require.NoError(t, err)
|
|
assert.NotEqual(t, "", s)
|
|
s = "enr:" + s
|
|
newRec, err := enode.Parse(enode.ValidSchemes, s)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, s, newRec.String())
|
|
})
|
|
|
|
t.Run("Nil record", func(t *testing.T) {
|
|
_, err := SerializeENR(nil)
|
|
require.NotNil(t, err)
|
|
assert.ErrorContains(t, "could not serialize nil record", err)
|
|
})
|
|
}
|
|
|
|
func TestConvertPeerIDToNodeID(t *testing.T) {
|
|
const (
|
|
peerIDStr = "16Uiu2HAmRrhnqEfybLYimCiAYer2AtZKDGamQrL1VwRCyeh2YiFc"
|
|
expectedNodeIDStr = "eed26c5d2425ab95f57246a5dca87317c41cacee4bcafe8bbe57e5965527c290"
|
|
)
|
|
|
|
peerID, err := peer.Decode(peerIDStr)
|
|
require.NoError(t, err)
|
|
|
|
actualNodeID, err := ConvertPeerIDToNodeID(peerID)
|
|
require.NoError(t, err)
|
|
|
|
actualNodeIDStr := actualNodeID.String()
|
|
require.Equal(t, expectedNodeIDStr, actualNodeIDStr)
|
|
}
|