I find the info in the ANONYMITY_NETWORKS.md document to be somewhat opaque and the cost of misconfiguring your anonymity network could be high.
I wouldn't use the term "opaque", rather they are detailed and expect a certain level of competence. There's really very little "cost of misconfiguring", rather things just wont work if misconfigured. At worst you will be just using a node like you currently do, over clearnet, and at best, working correctly broadcasting txs over anonymity networks.
Under what conditions would you choose add-exclusive-node instead of add-peer?
This is more a monerod question than an i2p/tor question. Here is the help on those options:
--add-peer arg Manually add peer to local peerlist
--add-exclusive-node arg Specify list of peers to connect to
only. If this option is given the
options add-priority-node and seed-node
are ignored
So you see, they have different purposes.
Where the question relates to i2p/tor comes into how the tor/i2p integration works - quoting the documentation:
Only handshakes, peer timed syncs and transaction broadcast messages are supported over anonymity networks. If one --add-exclusive-node p2p address is specified, then no syncing will take place and only transaction broadcasting can occur. It is therefore recommended that --add-exclusive-node be combined with additional exclusive IPv4 address(es).
Hence, to allow your node to broadcast transaction over tor/i2p you can --add-exclusive-node <tor/i2p-node>
, but then if you also want the same node to be able to sync blocks (over ipv4), you also need to --add-peer <clearnet-node>
.
"If configured properly, additional peers can be found through typical p2p peerlist sharing." What is the proper configuration that achieves this?
Configured properly, meaning you have configured for outbound tor/i2p connections (e.g. set --tx-proxy
and added one or more tor/i2p nodes).
Does this mean you specify one anonymous peer manually and it will discover the rest?
If you connect to another tor/i2p peer that also has connections to other tor/i2p nodes, yes, you will receive peerlists which include other tor/i2p peers.
Where does one find a list of peers to add manually? Is the one given in the document a real one intended for use, or just an example?
One can run their own tor/i2p peer by following the documentation for inbound connections. One of the things we hope to do (largely for the single-click GUI users use-case answered in your other question), is have a few community run/maintained seeds which operate on tor/i2p. This removes the need to run your own tor/i2p node, though just like with standard remote node usage, places a certain amount of trust in those remote nodes.
Does one need anonymous-inbound if you're only running your node locally and connecting to it from a local wallet, or is anonymous-inbound necessary for participating in the p2p network?
--anonymous-inbound
is necessary if you plan on running a full node that is made available to other node/wallets over tor/i2p. This maybe your own node on a VPS server which you plan to use over tor/i2p and/or make available to other users who need access to a node over tor/i2p (like the example peers available to GUI users mentioned above).