diff --git a/technology/tools/Monero.md b/technology/tools/Monero.md index 9837f61..accfb02 100644 --- a/technology/tools/Monero.md +++ b/technology/tools/Monero.md @@ -1,5 +1,6 @@ --- -website: https://www.getmonero.org/ +website: https://www.getmonero.org +repo: https://github.com/monero-project/monero obj: concept --- @@ -18,19 +19,111 @@ RingCT further improves privacy by concealing transaction amounts. This is achie ### 5. **Dynamic Block Size and Fees** Monero dynamically adjusts block size and fees based on network demand, ensuring scalability and preventing congestion. -## How Monero Works -Monero's privacy features are implemented through a combination of cryptographic techniques. When a user initiates a transaction, the following process occurs: -1. **Ring Signature Generation:** - - The sender's public key is combined with several other public keys from the blockchain to create a ring signature. - - This signature authenticates the transaction without revealing the actual sender. -2. **Stealth Address Generation:** - - The recipient's public address is masked by a one-time stealth address created for the specific transaction. - - This ensures that the recipient's identity remains private. -3. **RingCT Implementation:** - - RingCT obscures the transaction amount, providing an additional layer of privacy. - - It allows for the verification of transaction validity without disclosing specific amounts. -4. **Dynamic Block Size and Fees:** - - Monero adjusts block size and fees dynamically, allowing for scalability and preventing congestion. +## Daemon +`monerod` connects to the Monero Network and acts as a node. + +### Configuration +By default Monero looks for `bitmonero.conf` in Monero data directory. + +To use a specific config file add `--config-file` option: `./monerod --config-file=/etc/monerod.conf` + +``` +# ~/.bitmonero/bitmonero.conf +# +# Configuration file for monerod. For all available options see the MoneroDocs: +# https://docs.getmonero.org/interacting/monerod-reference/ + +# Data directory (blockchain db and indices) +data-dir=~/.bitmonero # Blockchain storage location + +# Optional pruning +#prune-blockchain=1 # Pruning saves 2/3 of disk space w/o degrading functionality but contributes less to the network +#sync-pruned-blocks=1 # Allow downloading pruned blocks instead of prunning them yourself + +# Centralized services +check-updates=disabled # Do not check DNS TXT records for a new version +enable-dns-blocklist=1 # Block known malicious nodes + +# Banlist +#ban-list=/path/to/ban.txt # Local list of peers to ban + +# Log file +log-file=~/.bitmonero +log-level=0 # Minimal logs, WILL NOT log peers or wallets connecting + + +# P2P full node +#p2p-bind-ip=0.0.0.0 # Bind to all interfaces (the default) +#p2p-bind-port=18080 # Bind to default port +#no-igd=1 # Disable UPnP port mapping + +# RPC open node +#public-node=1 # Advertise to other users they can use this node for connecting their wallets +rpc-restricted-bind-ip=0.0.0.0 # Bind to all interfaces (the Open Node) +rpc-restricted-bind-port=18089 # Bind to a new RESTRICTED port (the Open Node) + +# RPC TLS +rpc-ssl=autodetect # Use TLS if client wallet supports it; [enabled|disabled|(default)autodetect] + +# ZMQ +#zmq-rpc-bind-ip=127.0.0.1 # Default 127.0.0.1 +#zmq-rpc-bind-port=18082 # Default 18082 +zmq-pub=tcp://127.0.0.1:18083 # ZMQ pub +#no-zmq=1 # Disable ZMQ RPC server + +# Mempool size +max-txpool-weight=2684354560 # Maximum unconfirmed transactions pool size in bytes (here ~2.5GB, default ~618MB) + +# Database sync mode +#db-sync-mode=safe:sync # Slow but reliable db writes + +# Network limits +out-peers=12 # Default 12 +in-peers=48 # The default is unlimited; we prefer to put a cap on this + +limit-rate-up=1048576 # 1048576 kB/s == 1GB/s; a raise from default 2048 kB/s; contribute more to p2p network +limit-rate-down=1048576 # 1048576 kB/s == 1GB/s; a raise from default 8192 kB/s; allow for faster initial sync + +# Tor/I2P: broadcast transactions originating from connected wallets over Tor/I2P (does not concern relayed transactions) +#tx-proxy=i2p,127.0.0.1:4447,12,disable_noise # I2P +#tx-proxy=tor,127.0.0.1:9050,12,disable_noise # Tor + +# Tor/I2P: tell monerod your onion address so it can be advertised on P2P network +#anonymous-inbound=PASTE_YOUR_I2P_HOSTNAME,127.0.0.1:18085,24 # I2P +#anonymous-inbound=PASTE_YOUR_ONION_HOSTNAME:18084,127.0.0.1:18084,24 # Tor + +# Tor: be forgiving to connecting wallets +disable-rpc-ban=1 +``` + +### i2p +Monero should be used via [i2p](../internet/I2P.md) in order to combat networking attacks. + +First setup two b32 addresses: + +```ini +[monero-node] +type = server +host = 127.0.0.1 +# Anonymous inbound port +port = 18085 +inport = 0 +keys = monero-mainnet.dat + +[monero-rpc] +type = server +host = 127.0.0.1 +# Restricted RPC port +port = 18089 +keys = monero-mainnet.dat +``` + +Then set these in the config: + +``` +anonymous-inbound=yourlongb32i2paddress.b32.i2p,127.0.0.1:18085 +tx-proxy=i2p,127.0.0.1:4447,disable_noise +``` ## monero-cli-wallet `monero-wallet-cli` is the wallet software shipped in the Monero archives. It is a console program, and manages an account. @@ -43,7 +136,7 @@ monero-wallet-cli --generate-new-wallet Use existing wallet: ```shell monero-wallet-cli --wallet-file --password-file -```` +``` ### Commands | Command | Description |