ethersphere / bee

Bee is a Swarm client implemented in Go. It’s the basic building block for the Swarm network: a private; decentralized; and self-sustaining network for permissionless publishing and access to your (application) data.
https://www.ethswarm.org
BSD 3-Clause "New" or "Revised" License
1.46k stars 338 forks source link

Change default port #507

Closed nolash closed 3 years ago

nolash commented 4 years ago

Port 8080 is along with 8000 and 8888 a port not uncommonly used by transient web servers. I would suggest to use different one.

May I suggest 8633 (according to my /etc/services it seems to be "free")

ldeffenb commented 4 years ago

Is there a way to specify these ports in a configuration file? I see the switches on the command line, but there's also reference to a "--config string" for which I have not been able to find documentation.

nolash commented 4 years ago

@ldeffenb configuration is documented around 3/4 down this page: https://docs.ethswarm.org/bee-docs/tutorial.html

ldeffenb commented 4 years ago

@nolash Thank you for the link. I was looking in the main docs, not the tutorials. I had read this one, but ignored that section because I'm looking to join the main network, not set up a private network.

nolash commented 4 years ago

I agree it's too concealed. Please consider filing an issue for making it more accessible.

ldeffenb commented 4 years ago

@nolash Done. https://github.com/ethersphere/bee/issues/508

janos commented 4 years ago

@nolash Changing ports and listen addresses is possible with cli options, environment variables and configuration file. I think that http-alt port 8080 is the correct value to use not some arbitrary port with some other semantics.

@ldeffenb the configuration file is explained in Starting your node also with a simple example.

ldeffenb commented 4 years ago

@janos That's a better description than the tutorial, but https://github.com/ethersphere/bee/issues/508 is still important given the statement of "Note that the most-recent release of Bee might have different configuration options than the one provided here. Please verify this before using the template." with no definitive reference to what might be the current config file options short of reading the source.

janos commented 4 years ago

@ldeffenb Of course, and I believe that there is an ongoing effort to have versionized documentation. In this case, using the -h cli flag would give the options that are possible and as the Configuration file section states names between cli flags and config file options have a simple naming relation. I hope that this can help you in short term.

Eknir commented 4 years ago

Can we close this issue, as we have #508 and because @janos thinks 8080 is good as it is?

nolash commented 4 years ago

@janos

port 8080 is the correct value to use not some arbitrary port with some other semantics.

I don't agree. Swarm is supposed to be a service you run normally. 8080 is for stuff you bring up temporarily. I did not suggest choosing an abitrary port. My suggestion is to choose the canonical "swarm" port.

janos commented 4 years ago

@nolash If the purpose is to have a swarm canonical port, then let's first see what is required to make this official. Otherwise, it would be just as any other self proclaimed port.

I do not see that bee/swarm http api is so specific that it requires a canonical port. Beside that, if we standardize http port, should we have canonical ports for p2p api and even debug api port?

Given that we are using http protocol, it seems correct to have http or http-alt ports. Not every web server nginx or apache or application server like tomcat or others have dedicated ports as they communicate using http, they have defaults to 80, 8080 and user can configure ports on these applications as needed. Just as it is possible here.

nolash commented 4 years ago

debug api port

that would fit on 8080, because it's transient

for p2p api

well, for example eth nodes use 30399. it's not official, maybe, but it seems to be an unofficial standard in the community.

Given that we are using http protocol, it seems correct to have http or http-alt ports.

http is used as fast-food absolutely everywhere. I would argue that the ubiquity of http would suggest that it's long since detached from it's role as a system's primary web-server, and it's association with a single service port has long since has lost its meaning. To mean, semantically what 80/443 means is "the resources that this particular host wants to share with the outside," along the same lines of ftp etc. The internet is broken by corporations, commerce, brogrammer-designers and rich content, fine. But let's not let them re-write history about what these resources originally were for.

As for 8080, what I mean is that given that swarm would be the de-facto portal to anything web3 that would be a permanent fixture in a system, and this 8080 seems like an unambitious choice.

I would however most likely like to have a permanent web2 fixture, too (I'm old-school, I still run apache on my 80/443). That makes it impractical to use 80 for bee. Furthermore, if there is any merit to the "the resources that this particular host wants to share with the outside" claim above, bee is nothing like that, it's a portal to the world, not to a particular host.

then let's first see what is required to make this official.

I agree. At the same time, though, I wouldn't be surprised if such processes historically have started with the entity involved just squatting a port that's not in the list (but actually the history of how port-numbers was chosen would be interesting to learn, at least <1024).

... and seriously, if we have the audacity to arbitrarily invent a narcotics-referenced HTTP status code, then it seems a bit inconsistent to consider port number squatting out of scope.

8633 seems free so far :) https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt

janos commented 4 years ago

I think that this discussion is of very small significance and can last for a very long time. Given that we have more important things to work on, instead arguing here, I am fine to change default port numbers however you wish @nolash.

significance commented 4 years ago

agree this is important from a user point of view, 8080 is often already used, so this adds another level of complexity for the uninitiated. i think it's also a bit 'plain'.

i am not sure the iana list is up to date, comprehensive or canonical - neither Geth nor Swarm are listed for example, and multiple are listed for 3000.

my personal vote is for 1333 as it's leetspeak for BEE and feels nice under my fingers.

it is listed as 'passwrd-policy' but i can't find any reference to what that is, nor any instances of other applications regularly using the port, so i reckon it is up for grabs.

i did like the symmetry of 8080/6060 though, so maybe we should try to somehow preserve that.

nolash commented 4 years ago

Given that we have more important things to work on, instead arguing here

I stand corrected, @janos. Sorry for bringing it up.

Eknir commented 4 years ago

Hi guys,

I think changing the default port number is not that difficult to do, but it's long discussion which we should try to avoid. We should not ambition to get the "most correct" port, yet I do understand the arguments given here and, perhaps, :8080 does not fit the ambition of our project that well.

As far as I can read, @janos is OK with changing the default port number to any suggestion. I personally like the suggestion of @significance to go with 1333 (BEE) for our main port (and then the debug can go on 1322 (BZZ)).

significance commented 4 years ago

@nolash just got it πŸ™ˆ

significance commented 4 years ago

yeah i actually like all 1333 1322 and 8633

zelig commented 4 years ago

it used to be 322X so wheel is reinvented πŸ‘

Eknir commented 4 years ago

Closing this issue, as there are more important things (for now).

Eknir commented 4 years ago

I'm reopening this again, and assigning to @vandot . @vandot, please use this issue to track your work on changing the default port. Also, let us know here what are your plans.

vandot commented 4 years ago

At the roundtable 28.10. most popular choices were 1633 and 4633 Unofficially 4633 is occupied by QualiSystems TestShell Suite Services while 1633 and subsequent port numbers are unoccupied. Following port are selected:

Eknir commented 4 years ago

Hi @vandot , please don't close issues. Issues are closed at the moment that we do a code release.