modified: Getting-Started-with-MMGen.md

modified:   Home.md
	modified:   Install-Bitcoind-from-Source-on-Debian-or-Ubuntu-Linux.md
	modified:   Install-Bitcoind.md
	modified:   MMGen-Quick-Start-with-Regtest-Mode.md
	modified:   man-addrgen.md
	modified:   man-addrimport.md
	modified:   man-autosign.md
	modified:   man-keygen.md
	modified:   man-passchg.md
	modified:   man-passgen.md
	modified:   man-tool.md
	modified:   man-txbump.md
	modified:   man-txcreate.md
	modified:   man-txdo.md
	modified:   man-txsend.md
	modified:   man-txsign.md
	modified:   man-walletchk.md
	modified:   man-walletconv.md
	modified:   man-walletgen.md
philemon 2017-10-29 18:28:19 +03:00
commit 95c0b77dd1
Signed by untrusted user who does not match committer: mmgen
GPG key ID: 62DBE9E5212F05BE
20 changed files with 166 additions and 116 deletions

@ -27,8 +27,7 @@
* <a href='#a_rbf_onl'>With an online (hot) wallet</a>
* <a href='#a_rbf_onf'>With an offline (cold storage) wallet</a>
#### <a href='#a_ac'>Altcoin support</a>
* <a href='#a_bch'>Bitcoin Cash (BCH)</a>
#### <a href='#a_alt'>Forkcoin and Altcoin support (BCH,LTC)</a>
### <a name='a_i'>Preliminaries</a>
@ -849,16 +848,17 @@ them in turn until you get a confirmation:
$ mmgen-txsend 124FFF[0.1,150].sigtx # ...if this doesn't confirm, then
$ mmgen-txsend 73DABB[0.1,200].sigtx
### <a name='a_ac'>Altcoin support</a>
### <a name='a_alt'>Forkcoin and Altcoin support (BCH,LTC)</a>
#### <a name='a_bch'>Bitcoin Cash (BCH)</a>
To use MMGen with Bitcoin Cash (BCH) or Litecoin (LTC), first make sure the
Bitcoin ABC or Litecoin daemon is properly installed
([source][si])([binaries][bi]) and [running][p8].
To use MMGen with Bitcoin Cash (BCH), first make sure the Bitcoin ABC
daemon is properly installed ([source][si])([binaries][bi]), running and
listening for RPC connections on [port 8442][p8].
MMGen requires that the bitcoin-abc daemon be listening on non-standard
[port 8442][p8].
Then just add the `--coin=bch` option to all your MMGen commands. It's that
simple!
Then just add the `--coin=bch` or `--coin=ltc` option to all your MMGen
commands. It's that simple!
[01]: https://github.com/mmgen/mmgen/wiki/Tracking-and-spending-ordinary-Bitcoin-addresses
[02]: https://tpfaucet.appspot.com

@ -15,4 +15,4 @@
> #### [Recovering your keys without the MMGen software](Recovering-Your-Keys-Without-the-MMGen-Software)
> #### [Bitcoin Cash (BCH) support](Getting-Started-with-MMGen#a_bch)
> #### [Forkcoin and Altcoin support (BCH,LTC)](Getting-Started-with-MMGen#a_alt)

@ -1,6 +1,6 @@
***Note for Raspbian and Armbian users: Compiling the bitcoin daemon will
probably fail on a RPi or RPi clone due to insufficient memory. Fortunately,
ARM binaries are available for both Bitcoin Core and Bitcoin ABC. See the
***Note for Raspbian and Armbian users: Compiling the Bitcoin or Litecoin daemon
may fail on a RPi or RPi clone due to insufficient memory. Fortunately, ARM
binaries are available for Bitcoin Core, Bitcoin ABC and Litecoin. See the
[binary installation page][01] for details.***
### Install dependencies:
@ -60,15 +60,27 @@ ARM binaries are available for both Bitcoin Core and Bitcoin ABC. See the
$ sudo install -sv bitcoind /usr/local/bin/bitcoind-abc
> From now on, you'll invoke the daemon as 'bitcoind-abc' instead of 'bitcoind'.
> Or alternatively, to simplify the starting and stopping of two daemons on the
> same machine, download and use the node start and stop scripts from the
> MMGenLive project:
### Compile and install Litecoin (optional):
> Clone the Litecoin repository, compile and install:
$ git clone https://github.com/litecoin-project/litecoin.git
$ cd litecoin
$ ./autogen.sh
$ ./configure --without-gui --with-incompatible-bdb
$ make -j4
$ cd src
$ sudo install -sv litecoind litecoin-cli /usr/local/bin
> To simplify the starting and stopping of several daemons on the same machine,
> download and use the node start and stop scripts from the MMGenLive project:
$ curl -O 'https://raw.githubusercontent.com/mmgen/MMGenLive/master/home.mmgen/bin/mmlive-node-{start,stop}'
$ sudo install -v mmlive-node-{start,stop} /usr/local/bin
Refer to [Run][02] on the binary installation page for instructions on running
the bitcoin daemon(s).
your coin daemon(s).
[01]: Install-Bitcoind
[02]: Install-Bitcoind#a_r

@ -1,4 +1,4 @@
## Installing the Bitcoin daemon
## Install Bitcoind and other supported coin daemons
The bitcoin daemon on the **offline computer** is used solely to sign
transactions and runs without a blockchain. Thus even a low-powered computer
@ -7,15 +7,15 @@ machine.
The bitcoin daemon on the **online computer** requires a complete and
up-to-date blockchain for tracking addresses. Since its work is more CPU and
disk intensive, a more powerful computer is recommended here. You'll also
need plenty of free disk space for the rapidly growing blockchain (~150GB at
the time of writing).
disk intensive, a more powerful computer is required here. You'll also need
plenty of free disk space for the growing blockchain (~160GB at the time of
writing).
Two blockchain operations are especially resource-intensive: **synchronizing
the blockchain** and **importing existing addresses with balances**. If you
synchronize often (once a week, for example) and take care to import your
addresses **before** spending into them, then it's possible to use a
low-powered computer as your online machine.
addresses **before** spending into them, then it's possible to get by with a
more low-powered computer as your online machine.
### <a name='a_d'>Download:</a>
@ -29,83 +29,103 @@ low-powered computer as your online machine.
>> If you wish to transact BCH (Bcash), then download the appropriate [Bitcoin
>> ABC binary][abc] for your system as well. Windows users should choose the
>> executable installer.
>> executable installer.
>> *Consider the Bitcoin ABC binaries untrusted software. The author of the
>> MMGen project makes no guarantees regarding their safety or reliability.*
> **Litecoin (optional):**
>> Go to the Litecoin Core [download page][lc]. Choose the 32-bit or 64-bit
>> versions appropriate for your online and offline computers. Windows users
>> should choose the executable installer.
### <a name='a_i'>Install (both online and offline computers):</a>
> **Bitcoin Core:**
>> **Windows users:** Run the Windows installer with the default settings.
>> **Linux users:** Unpack the archive and copy the bitcoind and bitcoin-cli
>> **Windows:** Run the Windows installer with the default settings. Add
>> 'C:\Program Files\Bitcoin\daemon' to your [path][05].
>> **Linux:** Unpack the archive and copy the 'bitcoind' and 'bitcoin-cli'
>> binaries to /usr/local/bin.
> **Bitcoin ABC (optional):**
>> **Windows users:** Run the Windows installer, installing into the alternate
>> folder C:\Program Files\Bitcoin_ABC. **Linux users:** Unpack the archive and
>> rename bitcoind to bitcoind-abc. Copy it to /usr/local/bin.
>> **Windows:** Run the Windows installer, installing into the alternate
>> folder 'C:\Program Files\Bitcoin_ABC'. Add 'C:\Program Files\Bitcoin_ABC\daemon'
>> to your [path][05]. Rename the file 'bitcoind' in that folder to
>> 'bitcoind-abc'.
>> **Linux:** Unpack the archive, rename 'bitcoind' to 'bitcoind-abc' and
>> copy it to /usr/local/bin.
> **Litecoin (optional):**
>> **Windows:** Run the Windows installer with the default settings. Add
>> 'C:\Program Files\Litecoin\daemon' to your [path][05].
>> **Linux:** Unpack the archive and copy the 'litecoind' and
>> 'litecoin-cli' binaries to /usr/local/bin.
### <a name='a_r'>Run (both online and offline computers):</a>
> **Windows:**
>> In the Windows command-line environment processes don't fork to run in the
>> background, so you'll have to run each daemon in a separate terminal window.
>> If you're running Core only, open an MSYS terminal and start the daemon with
>> the command:
>> background, so to run multiple daemons simultaneously you must start each
>> one in a separate terminal window. Start your daemons like this:
# Bitcoin Core:
$ bitcoind
>> To run Bitcoin Core and Bitcoin ABC simultaneously, open two MSYS terminals.
>> In the first, run the command:
# ABC:
$ mkdir $APPDATA/Bitcoin_ABC
$ bitcoind-abc --listen=0 --rpcport=8442 --datadir=$APPDATA/Bitcoin_ABC
$ /c/Program\ Files/Bitcoin/daemon/bitcoind.exe
# Litecoin
$ litecoind
>> In the second, run:
$ mkdir /c/Users/yourusername/AppData/Roaming/Bitcoin_ABC
$ /c/Program\ Files/Bitcoin_ABC/daemon/bitcoind.exe -rpcport=8442 -datadir=/c/Users/yourusername/AppData/Roaming/Bitcoin_ABC
>> Note that the `--listen=0` argument is required only when running Core and ABC simultaneously.
> **Linux:**
>> Run the Core daemon:
>> Linux users start their daemons like this:
$ bitcoind -daemon
>> Run the ABC daemon (if applicable):
# Bitcoin Core:
$ bitcoind --daemon
# ABC:
$ mkdir ~/.bitcoin-abc
$ bitcoind-abc -daemon -rpcport=8442 -datadir=~/.bitcoin-abc
$ bitcoind-abc --daemon --listen=0 --rpcport=8442 --datadir=$HOME/.bitcoin-abc
# Litecoin:
$ litecoind --daemon
> Communicate with your daemons like this:
>> Core:
# Core:
$ bitcoin-cli help
>> ABC:
# ABC:
$ bitcoin-cli --rpcport=8442 help
$ bitcoin-cli -rpcport=8442 help
# Litecoin:
$ litecoin-cli help
> Warning: If you're using an existing Bitcoin Core or ABC installation, **move
> Warning: If you're using an existing Bitcoin or Litecoin installation, **move
> your wallet.dat out of harm's way** before starting the daemon. The new
> wallet now created will be used as your **tracking wallet**.
> If you're connected to the Internet, bitcoind will begin downloading and
> verifying the blockchain. This can take from several hours to several days
> depending on the speed of your computer and Internet connection. The initial
> block download can be sped up enormously by adding the `-assumevalid` option,
> followed by a recent block hash, to the command line. The block hash can be
> found on a blockchain explorer site.
> depending on the speed of your computer and Internet connection. You can
> speed up your initial block download enormously by adding the `-assumevalid`
> option, followed by a recent block hash, to the command line. Recent block
> hashes can be found on any blockchain explorer site.
> For the offline daemon you may add the options `-maxconnections=0 -listen=0`
> to the command line. Note that in the absence of a blockchain the offline
> daemon starts very quickly and uses practically no CPU once running.
> For the offline daemons you may add the options `-maxconnections=0 -listen=0`
> to the command line. Note that offline daemons start very quickly, since they
> have no blockchains, and use practically no CPU once running.
[01]: https://bitcoin.org/en/download
[bd]: https://bitcoin.org/bin/blockchain/
[05]: Editing-the-user-path-in-Windows
[abc]: https://download.bitcoinabc.org/
[lc]: https://download.litecoin.org/litecoin-0.15.0.1rc1/

@ -34,6 +34,9 @@ This tutorial provides a quick, hands-on introduction.
...
Type uppercase 'YES' to confirm: YES
Since your Bob has a different Seed ID, your address filename will of course
be different than this one.
5. List the addresses in Bob's tracking wallet. You'll see the addresses you
just imported:
@ -50,6 +53,8 @@ just imported:
$ mmgen-regtest send mw42oJ94yRA6ZUNSzmMpjZDR74JNyvqzzZ 500
Don't forget to substitute your C:1 address for the one above!
7. Make sure the funds reached their destination:
$ mmgen-tool --bob listaddresses showempty=1
@ -93,6 +98,8 @@ Specify a fee of 20 satoshis/byte and make output quieter:
Type uppercase 'YES' to confirm: YES
Transaction sent: 78ca853816b55527b42ca8784c887a5f482c752522f914d2f17d6afcd8a3b076
Don't forget to use your Alice's Seed ID here, instead of '9304C211'.
Note that for simplicity's sake this tutorial uses the `mmgen-txdo` command
to create, sign and send transactions in one operation. In normal, cold
wallet mode, your seed will be held on a separate offline computer which

@ -38,7 +38,7 @@
ADDRESS TYPES:
'C','compressed' - Compressed P2PKH address
'S','segwit' - Segwit P2SH-P2WPK address
'S','segwit' - Segwit P2SH-P2WPKH address
'L','legacy' - Legacy uncompressed address
@ -66,4 +66,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-ADDRGEN(1)
MMGEN v0.9.5 November 2017 MMGEN-ADDRGEN(1)

@ -4,9 +4,9 @@
OPTIONS:
-h, --help Print this help message
--longhelp Print help message for long options (common options)
-a, --address a Import the single Bitcoin address 'a'
-a, --address a Import the single coin address 'a'
-b, --batch Import all addresses in one RPC call.
-l, --addrlist Address source is a flat list of (non-MMGen) Bitcoin addresses
-l, --addrlist Address source is a flat list of non-MMGen coin addresses
-k, --keyaddr-file Address source is a key-address file
-q, --quiet Suppress warnings
-r, --rescan Rescan the blockchain. Required if address to import is
@ -17,4 +17,4 @@
The --batch and --rescan options cannot be used together.
MMGEN v0.9.4 October 2017 MMGEN-ADDRIMPORT(1)
MMGEN v0.9.5 November 2017 MMGEN-ADDRIMPORT(1)

@ -1,53 +1,64 @@
MMGEN-AUTOSIGN: Auto-sign MMGen transactions
USAGE: mmgen-autosign [opts] [command]
OPTIONS:
-h, --help Print this help message
--longhelp Print help message for long options (common options)
-l, --led Use status LED to signal standby, busy and error
-s, --stealth-led Stealth LED mode - signal busy and error only, and only
after successful authorization.
-h, --help Print this help message
--longhelp Print help message for long options (common options)
-c, --coins c Coins to sign for (comma-separated list)
-l, --led Use status LED to signal standby, busy and error
-m, --mountpoint m Specify an alternate mountpoint (default: '/mnt/tx')
-s, --stealth-led Stealth LED mode - signal busy and error only, and only
after successful authorization.
-q, --quiet Produce quieter output
-v, --verbose Produce more verbose output
COMMANDS
gen_secret - generate the shared secret and copy to /dev/shm and USB stick
wait - start in loop mode: wait - mount - sign - unmount - wait
gen_key - generate the wallet encryption key and copy it to '/mnt/tx/tx'
setup - generate the wallet encryption key and wallet
wait - start in loop mode: wait-mount-sign-unmount-wait
USAGE NOTES
If invoked with no command, the program mounts the USB stick, signs any
unsigned transactions, unmounts the USB stick and exits.
If invoked with no command, the program mounts a removable device containing
MMGen transactions, signs any unsigned transactions, unmounts the removable
device and exits.
If invoked with 'wait', the program waits in a loop, mounting, signing
and unmounting every time the USB stick is inserted. The status LED
indicates whether the program is busy or in standby mode, i.e. ready for
USB stick insertion or removal.
If invoked with 'wait', the program waits in a loop, mounting, signing and
unmounting every time the removable device is inserted.
The USB stick must have a partition with the label MMGEN_TX and a user-
On supported platforms (currently Orange Pi and Raspberry Pi boards), the
status LED indicates whether the program is busy or in standby mode, i.e.
ready for device insertion or removal.
The removable device must have a partition labeled MMGEN_TX and a user-
writable directory '/tx', where unsigned MMGen transactions are placed.
On the signing machine the directory /mnt/tx must exist and /etc/fstab must
contain the following entry:
On the signing machine the mount point '/mnt/tx' must exist and /etc/fstab
must contain the following entry:
LABEL='MMGEN_TX' /mnt/tx auto noauto,user 0 0
The signing wallet or wallets must be in MMGen mnemonic format and
present in /dev/shm. The wallet(s) can be created interactively with
the following command:
Transactions are signed with a wallet on the signing machine (in the directory
'/dev/shm/autosign') encrypted with a 64-character hexadecimal password on the
removable device.
$ mmgen-walletconv -i words -o words -d /dev/shm
The password and wallet can be created in one operation by invoking the
command with 'setup' with the removable device inserted. The user will be
prompted for a seed mnemonic.
mmgen-autosign checks that a shared secret is present on the USB stick
before signing transactions. The shared secret is generated by invoking
the command with 'gen_secret' with the USB stick inserted. For good
security, it's advisable to re-generate a new shared secret before each
signing session.
Alternatively, the password and wallet can be created separately by first
invoking the command with 'gen_key' and then creating and encrypting the
wallet using the -P (--passwd-file) option:
Status LED functionality is supported on Orange Pi and Raspberry Pi boards.
$ mmgen-walletconv -r0 -q -iwords -d/dev/shm/autosign -p1 -P/mnt/tx/tx/autosign.key -Llabel
This program is a helper script and is not installed by default. You
may copy it to your executable path if you wish, or just run it in place
in the scripts directory of the MMGen repository root where it resides.
Note that the hash preset must be '1'. Multiple wallets are permissible.
MMGEN v0.9.4 October 2017 MMGEN-AUTOSIGN(1)
For good security, it's advisable to re-generate a new wallet and key for
each signing session.
This command is currently available only on Linux-based platforms.
MMGEN v0.9.5 November 2017 MMGEN-AUTOSIGN(1)

@ -42,7 +42,7 @@
ADDRESS TYPES:
'C','compressed' - Compressed P2PKH address
'S','segwit' - Segwit P2SH-P2WPK address
'S','segwit' - Segwit P2SH-P2WPKH address
'L','legacy' - Legacy uncompressed address
@ -70,4 +70,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-KEYGEN(1)
MMGEN v0.9.5 November 2017 MMGEN-KEYGEN(1)

@ -43,4 +43,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-PASSCHG(1)
MMGEN v0.9.5 November 2017 MMGEN-PASSCHG(1)

@ -78,4 +78,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-PASSGEN(1)
MMGEN v0.9.5 November 2017 MMGEN-PASSGEN(1)

@ -1,4 +1,4 @@
MMGEN-TOOL: Perform various MMGen- and Bitcoin-related operations
MMGEN-TOOL: Perform various MMGen- and cryptocoin-related operations
USAGE: mmgen-tool [opts] <command> <command args>
OPTIONS:
-d, --outdir d Specify an alternate directory 'd' for output
@ -12,23 +12,23 @@
COMMANDS
Bitcoin address/key operations (compressed public keys supported):
addr2hexaddr - convert Bitcoin address from base58 to hex format
Cryptocoin address/key operations (compressed public keys supported):
addr2hexaddr - convert coin address from base58 to hex format
hex2wif - convert a private key from hex to WIF format
hexaddr2addr - convert Bitcoin address from hex to base58 format
privhex2addr - generate Bitcoin address from private key in hex format
hexaddr2addr - convert coin address from hex to base58 format
privhex2addr - generate coin address from private key in hex format
privhex2pubhex - generate a hex public key from a hex private key
pubhex2addr - convert a hex pubkey to an address
pubhex2redeem_script - convert a hex pubkey to a witness redeem script
wif2redeem_script - convert a WIF private key to a witness redeem script
wif2segwit_pair - generate both a Segwit redeem script and address from WIF
pubkey2addr - convert Bitcoin public key to address
pubkey2addr - convert coin public key to address
randpair - generate a random private key/address pair
randwif - generate a random private key in WIF format
wif2addr - generate a Bitcoin address from a key in WIF format
wif2addr - generate a coin address from a key in WIF format
wif2hex - convert a private key from WIF to hex format
Wallet/TX operations (bitcoind must be running):
Wallet/TX operations (coin daemon must be running):
getbalance - like 'bitcoin-cli getbalance' but shows confirmed/unconfirmed,
spendable/unspendable balances for individual MMGen wallets
listaddress - list the specified MMGen address and its balance
@ -91,4 +91,4 @@
Type 'mmgen-tool help <command> for help on a particular command
MMGEN v0.9.4 October 2017 MMGEN-TOOL(1)
MMGEN v0.9.5 November 2017 MMGEN-TOOL(1)

@ -77,4 +77,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-TXBUMP(1)
MMGEN v0.9.5 November 2017 MMGEN-TXBUMP(1)

@ -1,4 +1,4 @@
MMGEN-TXCREATE: Create a transaction with outputs to specified Bitcoin or MMGen addresses
MMGEN-TXCREATE: Create a transaction with outputs to specified coin or MMGen addresses
USAGE: mmgen-txcreate [opts] <addr,amt> ... [change addr] [addr file] ...
OPTIONS:
-h, --help Print this help message
@ -44,4 +44,4 @@
a plain decimal number, or as satoshis per byte, using an integer followed by
the letter 's'.
MMGEN v0.9.4 October 2017 MMGEN-TXCREATE(1)
MMGEN v0.9.5 November 2017 MMGEN-TXCREATE(1)

@ -101,4 +101,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-TXDO(1)
MMGEN v0.9.5 November 2017 MMGEN-TXDO(1)

@ -1,4 +1,4 @@
MMGEN-TXSEND: Send a Bitcoin transaction signed by mmgen-txsign
MMGEN-TXSEND: Send a cryptocoin transaction signed by mmgen-txsign
USAGE: mmgen-txsend [opts] <signed transaction file>
OPTIONS:
-h, --help Print this help message
@ -8,4 +8,4 @@
-s, --status Get status of a sent transaction
-y, --yes Answer 'yes' to prompts, suppress non-essential output
MMGEN v0.9.4 October 2017 MMGEN-TXSEND(1)
MMGEN v0.9.5 November 2017 MMGEN-TXSEND(1)

@ -1,4 +1,4 @@
MMGEN-TXSIGN: Sign Bitcoin transactions generated by mmgen-txcreate
MMGEN-TXSIGN: Sign cryptocoin transactions generated by mmgen-txcreate
USAGE: mmgen-txsign [opts] <transaction file>... [seed source]...
OPTIONS:
-h, --help Print this help message
@ -67,4 +67,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-TXSIGN(1)
MMGEN v0.9.5 November 2017 MMGEN-TXSIGN(1)

@ -42,4 +42,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-WALLETCHK(1)
MMGEN v0.9.5 November 2017 MMGEN-WALLETCHK(1)

@ -52,4 +52,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-WALLETCONV(1)
MMGEN v0.9.5 November 2017 MMGEN-WALLETCONV(1)

@ -45,4 +45,4 @@
SeedFile .mmseed mmseed,seed,s
Wallet .mmdat wallet,w
MMGEN v0.9.4 October 2017 MMGEN-WALLETGEN(1)
MMGEN v0.9.5 November 2017 MMGEN-WALLETGEN(1)