Neo: Add OS information during version handshake

Created on 13 Aug 2019  路  13Comments  路  Source: neo-project/neo

Hi,
I think we need more information about our nodes, sometimes we may face incompatibilities caused by the OS, or we may want to decide to use RocksDB (#966), but we don't know the OS or architecture used by them.
User-Agent example:
Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405
https://en.wikipedia.org/wiki/User_agent

This way it will be easier for us to help users and also to gather more information about our ecosystem.
This can be optional, but I don't see why.

cosmetic discussion p2p

All 13 comments

We already have a user agent, but is not very verbose, just for the node version

@shargon I think we could add more information, like the OS and architecture. This would help us in decision making if we know what OS and architecture the nodes are using

is good for me

@lock9 I do not totally agree with the idea that the nodes disclose information about the OS they are running. It is a double-edged sword.

@belane I think most nodes are already "exposed" and scanned for vulnerabilities at every other minute. Maybe we don't need to expose the full OS version, just its 'name', and its architecture.
We need to know the impact of moving to RocksDB (#966), also to make better decisions in the future, especially related to native code support.

But this could help in future decisions, not for rocksDb, because we won't have this stats now

@shargon you told me that the RocksDB only works in x64, so before we release a neo-cli using RocksDB, we need to ensure that this won't break most of the nodes

Yes, but what is your plan? add the OS before and launch a new release for recover this information?

But if we need it for deciding that can't be optional, don't you think?

This can be optional, for neo3 only. It can be either be done during handshake or we can have a message specifically for querying this information (like ping/pong). It is important to have this data, but @belane must say if it is safe or not. How unsafe is this? Can it be added or should we worry?
We need data to make better decisions and this seems to be a very relevant information

We have User-Agent in handshake, and the client can modify it. So it is already optional, I think.

How can we make it work? Can we add this in the configuration file? Can we have it on by default?

If I understood right, we already have User-Agent in the handshake, so this already exists.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

canesin picture canesin  路  3Comments

lock9 picture lock9  路  4Comments

shargon picture shargon  路  3Comments

doubiliu picture doubiliu  路  3Comments

igormcoelho picture igormcoelho  路  3Comments