593 lines
16 KiB
Groff
593 lines
16 KiB
Groff
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
|
|
.TH BITCOIND "1" "September 2018" "bitcoind v0.17.0.0" "User Commands"
|
|
.SH NAME
|
|
bitcoind \- manual page for bitcoind v0.17.0.0
|
|
.SH SYNOPSIS
|
|
.B bitcoind
|
|
[\fI\,options\/\fR] \fI\,Start Bitcoin Core Daemon\/\fR
|
|
.SH DESCRIPTION
|
|
Bitcoin Core Daemon version v0.17.0.0
|
|
.SH OPTIONS
|
|
.HP
|
|
\-?
|
|
.IP
|
|
Print this help message and exit
|
|
.HP
|
|
\fB\-alertnotify=\fR<cmd>
|
|
.IP
|
|
Execute command when a relevant alert is received or we see a really
|
|
long fork (%s in cmd is replaced by message)
|
|
.HP
|
|
\fB\-assumevalid=\fR<hex>
|
|
.IP
|
|
If this block is in the chain assume that it and its ancestors are valid
|
|
and potentially skip their script verification (0 to verify all,
|
|
default:
|
|
0000000000000000002e63058c023a9a1de233554f28c7b21380b6c9003f36a8,
|
|
testnet:
|
|
0000000000000037a8cd3e06cd5edbfe9dd1dbcc5dacab279376ef7cfc2b4c75)
|
|
.HP
|
|
\fB\-blocknotify=\fR<cmd>
|
|
.IP
|
|
Execute command when the best block changes (%s in cmd is replaced by
|
|
block hash)
|
|
.HP
|
|
\fB\-blockreconstructionextratxn=\fR<n>
|
|
.IP
|
|
Extra transactions to keep in memory for compact block reconstructions
|
|
(default: 100)
|
|
.HP
|
|
\fB\-blocksdir=\fR<dir>
|
|
.IP
|
|
Specify blocks directory (default: <datadir>/blocks)
|
|
.HP
|
|
\fB\-conf=\fR<file>
|
|
.IP
|
|
Specify configuration file. Relative paths will be prefixed by datadir
|
|
location. (default: bitcoin.conf)
|
|
.HP
|
|
\fB\-daemon\fR
|
|
.IP
|
|
Run in the background as a daemon and accept commands
|
|
.HP
|
|
\fB\-datadir=\fR<dir>
|
|
.IP
|
|
Specify data directory
|
|
.HP
|
|
\fB\-dbcache=\fR<n>
|
|
.IP
|
|
Set database cache size in megabytes (4 to 16384, default: 450)
|
|
.HP
|
|
\fB\-debuglogfile=\fR<file>
|
|
.IP
|
|
Specify location of debug log file. Relative paths will be prefixed by a
|
|
net\-specific datadir location. (\fB\-nodebuglogfile\fR to disable;
|
|
default: debug.log)
|
|
.HP
|
|
\fB\-includeconf=\fR<file>
|
|
.IP
|
|
Specify additional configuration file, relative to the \fB\-datadir\fR path
|
|
(only useable from configuration file, not command line)
|
|
.HP
|
|
\fB\-loadblock=\fR<file>
|
|
.IP
|
|
Imports blocks from external blk000??.dat file on startup
|
|
.HP
|
|
\fB\-maxmempool=\fR<n>
|
|
.IP
|
|
Keep the transaction memory pool below <n> megabytes (default: 300)
|
|
.HP
|
|
\fB\-maxorphantx=\fR<n>
|
|
.IP
|
|
Keep at most <n> unconnectable transactions in memory (default: 100)
|
|
.HP
|
|
\fB\-mempoolexpiry=\fR<n>
|
|
.IP
|
|
Do not keep transactions in the mempool longer than <n> hours (default:
|
|
336)
|
|
.HP
|
|
\fB\-par=\fR<n>
|
|
.IP
|
|
Set the number of script verification threads (\fB\-8\fR to 16, 0 = auto, <0 =
|
|
leave that many cores free, default: 0)
|
|
.HP
|
|
\fB\-persistmempool\fR
|
|
.IP
|
|
Whether to save the mempool on shutdown and load on restart (default: 1)
|
|
.HP
|
|
\fB\-pid=\fR<file>
|
|
.IP
|
|
Specify pid file. Relative paths will be prefixed by a net\-specific
|
|
datadir location. (default: bitcoind.pid)
|
|
.HP
|
|
\fB\-prune=\fR<n>
|
|
.IP
|
|
Reduce storage requirements by enabling pruning (deleting) of old
|
|
blocks. This allows the pruneblockchain RPC to be called to
|
|
delete specific blocks, and enables automatic pruning of old
|
|
blocks if a target size in MiB is provided. This mode is
|
|
incompatible with \fB\-txindex\fR and \fB\-rescan\fR. Warning: Reverting this
|
|
setting requires re\-downloading the entire blockchain. (default:
|
|
0 = disable pruning blocks, 1 = allow manual pruning via RPC,
|
|
>=550 = automatically prune block files to stay under the
|
|
specified target size in MiB)
|
|
.HP
|
|
\fB\-reindex\fR
|
|
.IP
|
|
Rebuild chain state and block index from the blk*.dat files on disk
|
|
.HP
|
|
\fB\-reindex\-chainstate\fR
|
|
.IP
|
|
Rebuild chain state from the currently indexed blocks
|
|
.HP
|
|
\fB\-sysperms\fR
|
|
.IP
|
|
Create new files with system default permissions, instead of umask 077
|
|
(only effective with disabled wallet functionality)
|
|
.HP
|
|
\fB\-txindex\fR
|
|
.IP
|
|
Maintain a full transaction index, used by the getrawtransaction rpc
|
|
call (default: 0)
|
|
.HP
|
|
\fB\-version\fR
|
|
.IP
|
|
Print version and exit
|
|
.PP
|
|
Connection options:
|
|
.HP
|
|
\fB\-addnode=\fR<ip>
|
|
.IP
|
|
Add a node to connect to and attempt to keep the connection open (see
|
|
the `addnode` RPC command help for more info). This option can be
|
|
specified multiple times to add multiple nodes.
|
|
.HP
|
|
\fB\-banscore=\fR<n>
|
|
.IP
|
|
Threshold for disconnecting misbehaving peers (default: 100)
|
|
.HP
|
|
\fB\-bantime=\fR<n>
|
|
.IP
|
|
Number of seconds to keep misbehaving peers from reconnecting (default:
|
|
86400)
|
|
.HP
|
|
\fB\-bind=\fR<addr>
|
|
.IP
|
|
Bind to given address and always listen on it. Use [host]:port notation
|
|
for IPv6
|
|
.HP
|
|
\fB\-connect=\fR<ip>
|
|
.IP
|
|
Connect only to the specified node; \fB\-noconnect\fR disables automatic
|
|
connections (the rules for this peer are the same as for
|
|
\fB\-addnode\fR). This option can be specified multiple times to connect
|
|
to multiple nodes.
|
|
.HP
|
|
\fB\-discover\fR
|
|
.IP
|
|
Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
|
|
or \fB\-proxy\fR)
|
|
.HP
|
|
\fB\-dns\fR
|
|
.IP
|
|
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
|
|
.HP
|
|
\fB\-dnsseed\fR
|
|
.IP
|
|
Query for peer addresses via DNS lookup, if low on addresses (default: 1
|
|
unless \fB\-connect\fR used)
|
|
.HP
|
|
\fB\-enablebip61\fR
|
|
.IP
|
|
Send reject messages per BIP61 (default: 1)
|
|
.HP
|
|
\fB\-externalip=\fR<ip>
|
|
.IP
|
|
Specify your own public address
|
|
.HP
|
|
\fB\-forcednsseed\fR
|
|
.IP
|
|
Always query for peer addresses via DNS lookup (default: 0)
|
|
.HP
|
|
\fB\-listen\fR
|
|
.IP
|
|
Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
|
|
.HP
|
|
\fB\-listenonion\fR
|
|
.IP
|
|
Automatically create Tor hidden service (default: 1)
|
|
.HP
|
|
\fB\-maxconnections=\fR<n>
|
|
.IP
|
|
Maintain at most <n> connections to peers (default: 125)
|
|
.HP
|
|
\fB\-maxreceivebuffer=\fR<n>
|
|
.IP
|
|
Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
|
|
.HP
|
|
\fB\-maxsendbuffer=\fR<n>
|
|
.IP
|
|
Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
|
|
.HP
|
|
\fB\-maxtimeadjustment\fR
|
|
.IP
|
|
Maximum allowed median peer time offset adjustment. Local perspective of
|
|
time may be influenced by peers forward or backward by this
|
|
amount. (default: 4200 seconds)
|
|
.HP
|
|
\fB\-maxuploadtarget=\fR<n>
|
|
.IP
|
|
Tries to keep outbound traffic under the given target (in MiB per 24h),
|
|
0 = no limit (default: 0)
|
|
.HP
|
|
\fB\-onion=\fR<ip:port>
|
|
.IP
|
|
Use separate SOCKS5 proxy to reach peers via Tor hidden services, set
|
|
\fB\-noonion\fR to disable (default: \fB\-proxy\fR)
|
|
.HP
|
|
\fB\-onlynet=\fR<net>
|
|
.IP
|
|
Make outgoing connections only through network <net> (ipv4, ipv6 or
|
|
onion). Incoming connections are not affected by this option.
|
|
This option can be specified multiple times to allow multiple
|
|
networks.
|
|
.HP
|
|
\fB\-peerbloomfilters\fR
|
|
.IP
|
|
Support filtering of blocks and transaction with bloom filters (default:
|
|
1)
|
|
.HP
|
|
\fB\-permitbaremultisig\fR
|
|
.IP
|
|
Relay non\-P2SH multisig (default: 1)
|
|
.HP
|
|
\fB\-port=\fR<port>
|
|
.IP
|
|
Listen for connections on <port> (default: 8333 or testnet: 18333)
|
|
.HP
|
|
\fB\-proxy=\fR<ip:port>
|
|
.IP
|
|
Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
|
|
disabled)
|
|
.HP
|
|
\fB\-proxyrandomize\fR
|
|
.IP
|
|
Randomize credentials for every proxy connection. This enables Tor
|
|
stream isolation (default: 1)
|
|
.HP
|
|
\fB\-seednode=\fR<ip>
|
|
.IP
|
|
Connect to a node to retrieve peer addresses, and disconnect. This
|
|
option can be specified multiple times to connect to multiple
|
|
nodes.
|
|
.HP
|
|
\fB\-timeout=\fR<n>
|
|
.IP
|
|
Specify connection timeout in milliseconds (minimum: 1, default: 5000)
|
|
.HP
|
|
\fB\-torcontrol=\fR<ip>:<port>
|
|
.IP
|
|
Tor control port to use if onion listening enabled (default:
|
|
127.0.0.1:9051)
|
|
.HP
|
|
\fB\-torpassword=\fR<pass>
|
|
.IP
|
|
Tor control port password (default: empty)
|
|
.HP
|
|
\fB\-upnp\fR
|
|
.IP
|
|
Use UPnP to map the listening port (default: 0)
|
|
.HP
|
|
\fB\-whitebind=\fR<addr>
|
|
.IP
|
|
Bind to given address and whitelist peers connecting to it. Use
|
|
[host]:port notation for IPv6
|
|
.HP
|
|
\fB\-whitelist=\fR<IP address or network>
|
|
.IP
|
|
Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or
|
|
CIDR notated network (e.g. 1.2.3.0/24). Can be specified multiple
|
|
times. Whitelisted peers cannot be DoS banned and their
|
|
transactions are always relayed, even if they are already in the
|
|
mempool, useful e.g. for a gateway
|
|
.PP
|
|
Wallet options:
|
|
.HP
|
|
\fB\-addresstype\fR
|
|
.IP
|
|
What type of addresses to use ("legacy", "p2sh\-segwit", or "bech32",
|
|
default: "p2sh\-segwit")
|
|
.HP
|
|
\fB\-avoidpartialspends\fR
|
|
.IP
|
|
Group outputs by address, selecting all or none, instead of selecting on
|
|
a per\-output basis. Privacy is improved as an address is only
|
|
used once (unless someone sends to it after spending from it),
|
|
but may result in slightly higher fees as suboptimal coin
|
|
selection may result due to the added limitation (default: 0)
|
|
.HP
|
|
\fB\-changetype\fR
|
|
.IP
|
|
What type of change to use ("legacy", "p2sh\-segwit", or "bech32").
|
|
Default is same as \fB\-addresstype\fR, except when
|
|
\fB\-addresstype\fR=\fI\,p2sh\-segwit\/\fR a native segwit output is used when
|
|
sending to a native segwit address)
|
|
.HP
|
|
\fB\-disablewallet\fR
|
|
.IP
|
|
Do not load the wallet and disable wallet RPC calls
|
|
.HP
|
|
\fB\-discardfee=\fR<amt>
|
|
.IP
|
|
The fee rate (in BTC/kB) that indicates your tolerance for discarding
|
|
change by adding it to the fee (default: 0.0001). Note: An output
|
|
is discarded if it is dust at this rate, but we will always
|
|
discard up to the dust relay fee and a discard fee above that is
|
|
limited by the fee estimate for the longest target
|
|
.HP
|
|
\fB\-fallbackfee=\fR<amt>
|
|
.IP
|
|
A fee rate (in BTC/kB) that will be used when fee estimation has
|
|
insufficient data (default: 0.0002)
|
|
.HP
|
|
\fB\-keypool=\fR<n>
|
|
.IP
|
|
Set key pool size to <n> (default: 1000)
|
|
.HP
|
|
\fB\-mintxfee=\fR<amt>
|
|
.IP
|
|
Fees (in BTC/kB) smaller than this are considered zero fee for
|
|
transaction creation (default: 0.00001)
|
|
.HP
|
|
\fB\-paytxfee=\fR<amt>
|
|
.IP
|
|
Fee (in BTC/kB) to add to transactions you send (default: 0.00)
|
|
.HP
|
|
\fB\-rescan\fR
|
|
.IP
|
|
Rescan the block chain for missing wallet transactions on startup
|
|
.HP
|
|
\fB\-salvagewallet\fR
|
|
.IP
|
|
Attempt to recover private keys from a corrupt wallet on startup
|
|
.HP
|
|
\fB\-spendzeroconfchange\fR
|
|
.IP
|
|
Spend unconfirmed change when sending transactions (default: 1)
|
|
.HP
|
|
\fB\-txconfirmtarget=\fR<n>
|
|
.IP
|
|
If paytxfee is not set, include enough fee so transactions begin
|
|
confirmation on average within n blocks (default: 6)
|
|
.HP
|
|
\fB\-upgradewallet\fR
|
|
.IP
|
|
Upgrade wallet to latest format on startup
|
|
.HP
|
|
\fB\-wallet=\fR<path>
|
|
.IP
|
|
Specify wallet database path. Can be specified multiple times to load
|
|
multiple wallets. Path is interpreted relative to <walletdir> if
|
|
it is not absolute, and will be created if it does not exist (as
|
|
a directory containing a wallet.dat file and log files). For
|
|
backwards compatibility this will also accept names of existing
|
|
data files in <walletdir>.)
|
|
.HP
|
|
\fB\-walletbroadcast\fR
|
|
.IP
|
|
Make the wallet broadcast transactions (default: 1)
|
|
.HP
|
|
\fB\-walletdir=\fR<dir>
|
|
.IP
|
|
Specify directory to hold wallets (default: <datadir>/wallets if it
|
|
exists, otherwise <datadir>)
|
|
.HP
|
|
\fB\-walletnotify=\fR<cmd>
|
|
.IP
|
|
Execute command when a wallet transaction changes (%s in cmd is replaced
|
|
by TxID)
|
|
.HP
|
|
\fB\-walletrbf\fR
|
|
.IP
|
|
Send transactions with full\-RBF opt\-in enabled (RPC only, default: 0)
|
|
.HP
|
|
\fB\-zapwallettxes=\fR<mode>
|
|
.IP
|
|
Delete all wallet transactions and only recover those parts of the
|
|
blockchain through \fB\-rescan\fR on startup (1 = keep tx meta data e.g.
|
|
account owner and payment request information, 2 = drop tx meta
|
|
data)
|
|
.PP
|
|
ZeroMQ notification options:
|
|
.HP
|
|
\fB\-zmqpubhashblock=\fR<address>
|
|
.IP
|
|
Enable publish hash block in <address>
|
|
.HP
|
|
\fB\-zmqpubhashtx=\fR<address>
|
|
.IP
|
|
Enable publish hash transaction in <address>
|
|
.HP
|
|
\fB\-zmqpubrawblock=\fR<address>
|
|
.IP
|
|
Enable publish raw block in <address>
|
|
.HP
|
|
\fB\-zmqpubrawtx=\fR<address>
|
|
.IP
|
|
Enable publish raw transaction in <address>
|
|
.PP
|
|
Debugging/Testing options:
|
|
.HP
|
|
\fB\-debug=\fR<category>
|
|
.IP
|
|
Output debugging information (default: \fB\-nodebug\fR, supplying <category> is
|
|
optional). If <category> is not supplied or if <category> = 1,
|
|
output all debugging information. <category> can be: net, tor,
|
|
mempool, http, bench, zmq, db, rpc, estimatefee, addrman,
|
|
selectcoins, reindex, cmpctblock, rand, prune, proxy, mempoolrej,
|
|
libevent, coindb, qt, leveldb.
|
|
.HP
|
|
\fB\-debugexclude=\fR<category>
|
|
.IP
|
|
Exclude debugging information for a category. Can be used in conjunction
|
|
with \fB\-debug\fR=\fI\,1\/\fR to output debug logs for all categories except one
|
|
or more specified categories.
|
|
.HP
|
|
\fB\-help\-debug\fR
|
|
.IP
|
|
Show all debugging options (usage: \fB\-\-help\fR \fB\-help\-debug\fR)
|
|
.HP
|
|
\fB\-logips\fR
|
|
.IP
|
|
Include IP addresses in debug output (default: 0)
|
|
.HP
|
|
\fB\-logtimestamps\fR
|
|
.IP
|
|
Prepend debug output with timestamp (default: 1)
|
|
.HP
|
|
\fB\-maxtxfee=\fR<amt>
|
|
.IP
|
|
Maximum total fees (in BTC) to use in a single wallet transaction or raw
|
|
transaction; setting this too low may abort large transactions
|
|
(default: 0.10)
|
|
.HP
|
|
\fB\-printtoconsole\fR
|
|
.IP
|
|
Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
|
|
logging to file, set \fB\-nodebuglogfile\fR)
|
|
.HP
|
|
\fB\-shrinkdebugfile\fR
|
|
.IP
|
|
Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
|
|
.HP
|
|
\fB\-uacomment=\fR<cmt>
|
|
.IP
|
|
Append comment to the user agent string
|
|
.PP
|
|
Chain selection options:
|
|
.HP
|
|
\fB\-testnet\fR
|
|
.IP
|
|
Use the test chain
|
|
.PP
|
|
Node relay options:
|
|
.HP
|
|
\fB\-bytespersigop\fR
|
|
.IP
|
|
Equivalent bytes per sigop in transactions for relay and mining
|
|
(default: 20)
|
|
.HP
|
|
\fB\-datacarrier\fR
|
|
.IP
|
|
Relay and mine data carrier transactions (default: 1)
|
|
.HP
|
|
\fB\-datacarriersize\fR
|
|
.IP
|
|
Maximum size of data in data carrier transactions we relay and mine
|
|
(default: 83)
|
|
.HP
|
|
\fB\-mempoolreplacement\fR
|
|
.IP
|
|
Enable transaction replacement in the memory pool (default: 1)
|
|
.HP
|
|
\fB\-minrelaytxfee=\fR<amt>
|
|
.IP
|
|
Fees (in BTC/kB) smaller than this are considered zero fee for relaying,
|
|
mining and transaction creation (default: 0.00001)
|
|
.HP
|
|
\fB\-whitelistforcerelay\fR
|
|
.IP
|
|
Force relay of transactions from whitelisted peers even if they violate
|
|
local relay policy (default: 1)
|
|
.HP
|
|
\fB\-whitelistrelay\fR
|
|
.IP
|
|
Accept relayed transactions received from whitelisted peers even when
|
|
not relaying transactions (default: 1)
|
|
.PP
|
|
Block creation options:
|
|
.HP
|
|
\fB\-blockmaxweight=\fR<n>
|
|
.IP
|
|
Set maximum BIP141 block weight (default: 3996000)
|
|
.HP
|
|
\fB\-blockmintxfee=\fR<amt>
|
|
.IP
|
|
Set lowest fee rate (in BTC/kB) for transactions to be included in block
|
|
creation. (default: 0.00001)
|
|
.PP
|
|
RPC server options:
|
|
.HP
|
|
\fB\-rest\fR
|
|
.IP
|
|
Accept public REST requests (default: 0)
|
|
.HP
|
|
\fB\-rpcallowip=\fR<ip>
|
|
.IP
|
|
Allow JSON\-RPC connections from specified source. Valid for <ip> are a
|
|
single IP (e.g. 1.2.3.4), a network/netmask (e.g.
|
|
1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
|
|
option can be specified multiple times
|
|
.HP
|
|
\fB\-rpcauth=\fR<userpw>
|
|
.IP
|
|
Username and hashed password for JSON\-RPC connections. The field
|
|
<userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
|
|
canonical python script is included in share/rpcauth. The client
|
|
then connects normally using the
|
|
rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
|
|
option can be specified multiple times
|
|
.HP
|
|
\fB\-rpcbind=\fR<addr>[:port]
|
|
.IP
|
|
Bind to given address to listen for JSON\-RPC connections. This option is
|
|
ignored unless \fB\-rpcallowip\fR is also passed. Port is optional and
|
|
overrides \fB\-rpcport\fR. Use [host]:port notation for IPv6. This
|
|
option can be specified multiple times (default: 127.0.0.1 and
|
|
::1 i.e., localhost, or if \fB\-rpcallowip\fR has been specified,
|
|
0.0.0.0 and :: i.e., all addresses)
|
|
.HP
|
|
\fB\-rpccookiefile=\fR<loc>
|
|
.IP
|
|
Location of the auth cookie. Relative paths will be prefixed by a
|
|
net\-specific datadir location. (default: data dir)
|
|
.HP
|
|
\fB\-rpcpassword=\fR<pw>
|
|
.IP
|
|
Password for JSON\-RPC connections
|
|
.HP
|
|
\fB\-rpcport=\fR<port>
|
|
.IP
|
|
Listen for JSON\-RPC connections on <port> (default: 8332 or testnet:
|
|
18332)
|
|
.HP
|
|
\fB\-rpcserialversion\fR
|
|
.IP
|
|
Sets the serialization of raw transaction or block hex returned in
|
|
non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
|
|
.HP
|
|
\fB\-rpcthreads=\fR<n>
|
|
.IP
|
|
Set the number of threads to service RPC calls (default: 4)
|
|
.HP
|
|
\fB\-rpcuser=\fR<user>
|
|
.IP
|
|
Username for JSON\-RPC connections
|
|
.HP
|
|
\fB\-server\fR
|
|
.IP
|
|
Accept command line and JSON\-RPC commands
|
|
.SH COPYRIGHT
|
|
Copyright (C) 2009-2018 The Bitcoin Core developers
|
|
|
|
Please contribute if you find Bitcoin Core useful. Visit
|
|
<https://bitcoincore.org> for further information about the software.
|
|
The source code is available from <https://github.com/bitcoin/bitcoin>.
|
|
|
|
This is experimental software.
|
|
Distributed under the MIT software license, see the accompanying file COPYING
|
|
or <https://opensource.org/licenses/MIT>
|
|
|
|
This product includes software developed by the OpenSSL Project for use in the
|
|
OpenSSL Toolkit <https://www.openssl.org> and cryptographic software written by
|
|
Eric Young and UPnP software written by Thomas Bernard.
|