Giter Site home page Giter Site logo

ethereum / portal-hive Goto Github PK

View Code? Open in Web Editor NEW
15.0 9.0 18.0 38.02 MB

Portal Network end-to-end test harness

License: GNU General Public License v3.0

Shell 1.80% Dockerfile 1.16% Assembly 0.44% Go 65.99% JavaScript 8.83% HTML 3.40% Rust 6.56% TypeScript 11.83%

portal-hive's Introduction

portal-hive's People

Contributors

arkpar avatar asdacap avatar bas-vk avatar carver avatar cdetrio avatar daniellehrner avatar fab-10 avatar fjl avatar frankszendzielarz avatar giulio2002 avatar gsalgado avatar holiman avatar karalabe avatar kdeme avatar kolbyml avatar lightclient avatar marioevz avatar mariusvanderwijden avatar meowsbits avatar njgheorghita avatar ogenev avatar protolambda avatar ratanrsur avatar renaynay avatar scottypoi avatar sebastiandremo avatar shemnon avatar somniastellarum avatar tkstanczak avatar zilm13 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

portal-hive's Issues

Expectation of node in test portal_historyRoutingTableInfo of simulation ts-sim-test

The portal_historyRoutingTableInfo test launches Portal ping message in both directions of all the tested nodes.

Next it will call portal_historyRoutingTableInfo to see if all nodes have the other nodes in their routing tables.

However, an ENR only gets transmitted in a discv5 handshake message, and only the ENR of the requesting side is send.
This means that ENR's do not get transferred in all directions in this test scenario. This is why currently tests with Fluffy will fail this test scenario.

I'm curious what other clients do here to make this test pass. Do they actively send a FindNodes request to get this ENR (seems like something that could still fail in this test due to race conditions)? Or do they just simply add the ENR that is passed along the portal_historyPing method (Not really specified behaviour) to the routing table?

Issue in ts-sim-test for portal_historyRoutingTableInfo when testing with single client

I think there is a bug in the filtering of the clients when you run this test for one specific client: https://github.com/ethereum/portal-hive/blob/main/hivesim-ts/src/simulators/ts-sim-test/main.ts#L80

I.e. using the flag --client fluffy or another single client.
In that scenario the test will run between two fluffy clients, however both will get filtered out, meaning that it will not test for the proper amount of nodes in the routing table.

portal-hive nodes have access to external networks, causing test contamination

IpV4 UDP Socket: Some(194.33.40.238:9102)
IpV4 UDP Socket: Some(194.33.40.238:9101)

I was trying to work on tests and I found that when I ran fluffly it was connecting to bootstrap nodes. This has the possibility to contaminate tests. This doesn't mean we should change fluffy. But instead make it so the docker nodes used in simulaters are isolated per test.

portal_historyGetEnr*/portal_historyDeleteEnr*/(anything that uses nodeid as param) won't seralize properly

This will either one fixed once we revert our semi NodeID transition to native sigp/enr library or we wait for the new version of sigp/enr which fixes this issue. So if we are in a rush we can just revert the semi done conversion PR and do the conversion after the new sigp/enr with the fixes is our. Or we can just wait till the new sigp/enr version with the fixes is out.

Either way after this is resolved I think in ethportal we should probably have a unit test which tests if all of the standard types in the spec serialize correctly. To provent this from happening again.

Ability to run portal-hive tests directly against local binary of the client

When working on portal-hive failures that are related to a client, currently we need to rebuild the client its docker image.
How long this takes, does depend on the implementation of the Dockerfile for the client, but will always take more than then just building it locally, which you usually would do anyhow when testing.

It would be nice if we had some special debugging runner that could run the tests from a provided local binary.

This is not a crucial nor urgent feature, but it does seem there is some interest for this at least.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.