FAQ/Howto: set up a public node

Quote from Reddit User /u/Lespristy (02-10-2017): https://www.reddit.com/r/Aeon/comments/73qb95/faqhowto_set_up_a_public_node/


What’s a public node?
A “public”, “open”, or “remote” node is a daemon which allows RPC connections from any client on the internet, as opposed to allowing connections only from the local host or local network.

What do clients do over RPC?
Clients can request information about the blockchain, such as the current block height or individual blocks. For example, wallets will request blocks from a node in order to find incoming transactions. Clients can also submit transactions or blocks. With a local node, clients can issue commands to start or stop mining or to save the blockchain.

What are the advantages of public nodes?
The primary advantage is to allow people to synchronize their wallets with the blockchain, without having to run a local node and wait for it to download the entire blockchain. This makes it easier for people to buy, sell, and use Aeon.

What are the disadvantages of public nodes?
For the entire Aeon network: less Aeon users running their own nodes results in centralization of the network. For the individual Aeoner: there is some loss of privacy. A node that you connect to may be able to learn some info about your transactions. However, most importantly, the remote node does NOT have access to your private keys, so it can’t steal your coins.
For some good info about the privacy related issues, see the following. Most of the discussion about Monero applies similarly to Aeon.

https://www.reddit.com/r/Monero/comments/5myxam/remote_nodes_to_use_or_not_to_use/

https://monero.stackexchange.com/questions/38/what-privacy-or-security-trade-offs-are-associated-with-not-running-your-own-ful

How can I run a public node?
You will need the following:

  1. A physical or virtual machine running the daemon (“aeond”). Ideally it would have enough RAM to load the entire blockchain, or it would need enough swap space to do the same.
  2. The daemon’s RPC port (default 11181) must be open for incoming connections. The daemon must be started listening for external connections, the operating system and software must allow incoming connections, and the network (e.g. router/NAT) must be configured so that traffic can reach the node via a public IP on that port.
  3. The daemon should also be configured to prevent clients from issuing sensitive commands, such as controlling mining or saving the blockchain.

 

TLDR;
Ensure you have the latest version of the daemon. On Linux, you can easily clone or pull the source code repository and then build it. The Windows binaries for the 0.9.13.0 release don’t include the “restricted-rpc” option, so you may need to wait for the next binary release or build the project yourself using the most recent code.
On Linux, I suggest that you start a screen session before running the daemon, especially if you’re connecting over SSH.

Start daemon [Linux]:
./aeond --rpc-bind-ip 0.0.0.0 --no-igd --disable-save --restricted-rpc
There you go. Test it remotely.

Explanation of command line options:
--rpc-bind-ip 0.0.0.0
[Listen for connections on all IP interfaces]

--no-igd
[Don’t try to open NAT ports with UPnP. Leave this off if you want it to try automatically configuring your router. Useless if you already have.]

--disable-save
[Don’t save the blockchain automatically every 12 hours. Useful for lower memory systems. Blockchain can still be saved manually.]

--restricted-rpc
[Prevent clients from issuing sensitive commands]

 

I’m sure I’ve left something off. Try it! Give me some feedback.