Comments (5)
The problem is related to Opera bootnodes configuration. This configuration doesn't use discovery bootnodes, but rather static nodes. According to the response you mentioned, those static nodes have exhausted their connections limit, and as a result they won't accept any new connections.
To configure a discovery node, you have to specify external IP which you want to be advertised in discovery: --nat=extip:YOUR_IP
.
Also discovery uses UDP, so you'll have to open 5050 UDP port if it's closed on your server (or any other p2p port if it's not default).
Without these steps, you'll find other nodes in discovery, but other nodes won't find you.
After both of those conditions are true, the node may be used as a discovery node.
From your side, you may setup a discovery node, and then when Opera bootnodes configuration is resolved, your node will participate in discovery and hence will improve the connectivity of the network. Until then, you may use your own discovery node as a bootnode. To do that, use flag --bootnodesv5 "enode://[email protected]:5050"
from go-lachesis.
By Opera bootnodes configuration you mean an issue in the code, right?
What are those parameters related to?
--bootnodes value Comma separated enode URLs for P2P discovery bootstrap (set v4+v5 instead for light servers)
--bootnodesv4 value Comma separated enode URLs for P2P v4 discovery bootstrap (light server, full nodes)
--bootnodesv5 value Comma separated enode URLs for P2P v5 discovery bootstrap (light server, light nodes)
Seems like the difference is light server/node vs full server/node. What's the difference?
In the mainnet.toml
config file there are these parameters:
...
[Node.P2P]
NoDiscovery = false
DiscoveryV5 = true
...
What are those for? Seems like DiscoveryV5
enables the node to be discovered by others. Not sure about NoDiscovery
. Are they the same as the parameters for the Lachesis binary?
--nodiscover Disables the peer discovery mechanism (manual peer addition)
--v5disc Enables the experimental RLPx V5 (Topic Discovery) mechanism
When you say using my own discovery node as my boot node, are you talking about 2 separate machines? Or is a single node using the discovery service of itself?
from go-lachesis.
By Opera bootnodes configuration you mean an issue in the code, right?
The issue is absence of bootnodes in Opera mainnet.toml.
It can be fixed by updating mainnet.toml, without updating go-lachesis executable.
Seems like the difference is light server/node vs full server/node. What's the difference?
There's no difference really, because there's no light nodes yet. The description has to be fixed. Discovery V5 does work for full nodes (it's the only type of node we have currently).
What are those for? Seems like DiscoveryV5 enables the node to be discovered by others. Not sure about NoDiscovery. Are they the same as the parameters for the Lachesis binary?
NoDiscovery = false
specifies that discovery isn't disabled. DiscoveryV5 = true
specifies that discovery v5 is enabled (in addition to discovery v4).
"Discovery is enabled" means:
- Your node will search for other nodes in discovery network
- If you specified
--nat=extip:YOUR_IP
, then your IP will be advertised in discovery network
What are those for? Seems like DiscoveryV5 enables the node to be discovered by others. Not sure about NoDiscovery. Are they the same as the parameters for the Lachesis binary?
Yes, those are flag versions of config fields NoDiscovery
and DiscoveryV5
You can check it by running lachesis --nodiscover dumpconfig
, lachesis dumpconfig
and comparing the output. dumpconfig
is a command to return the final config, after all keys are applied.
When you say using my own discovery node as my boot node, are you talking about 2 separate machines? Or is a single node using the discovery service of itself?
Single node does use discovery service of itself, but if there's no discovery nodes - then there's no peers to be found. Since mainnet.toml doesn't offer default discovery nodes right now, the only way to use discovery is to either setup your own bootnode, or find community bootnodes.
Usage of static nodes is still an option for you, but ensure you use as many static connections as possible.
from go-lachesis.
@rekt0x ok to close this issue?
from go-lachesis.
@quan8 yes, can be closed.
from go-lachesis.
Related Issues (20)
- Wrong delegation numbers (?) HOT 1
- Deployment of smart contracts to Opera testnet fails with Truffle error "unknown account" HOT 2
- Trying to run a private testnet manually. Crashing when reaching block in MaxEpochBlocks or cannot change epochs. HOT 5
- Dependabot can't parse your go.mod
- Some questions about the mainnet FTM HOT 1
- failed RPC connection to node1 HOT 2
- Error: No such object: node1 HOT 1
- Syncing stuck at block 614958 HOT 4
- lachesis --your-favourite-flags dumpconfig can not work HOT 2
- can not find other validators HOT 5
- How can I increase the number of block packaging transactions? HOT 1
- How can I increase the number of block packaging transactions?
- Modified the parameter block package transaction of Lachesis.Emitter.EmitIntervals to decrease
- is there fast syncmode to sync data, it is very hard to catchup HOT 1
- codahale/hdrhistogram repo url has been transferred under the github HdrHstogram umbrella
- Lost Fonda HOT 1
- FetchError: request to https://rpc.testnet.fantom.network/ failed, reason: Client network socket disconnected before secure TLS connection was established
- Node out of sync HOT 2
- read-only go-opera node HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-lachesis.