update documentation from wiki
This commit is contained in:
parent
765f245042
commit
2d1a626a7d
4 changed files with 158 additions and 27 deletions
|
|
@ -94,7 +94,7 @@ the `--help` option for more complete information.
|
||||||
#### <a id="a_tx">Transacting and other basic operations</a>
|
#### <a id="a_tx">Transacting and other basic operations</a>
|
||||||
|
|
||||||
Basic operations with ETH, ETC and ERC20 tokens work as described in the
|
Basic operations with ETH, ETC and ERC20 tokens work as described in the
|
||||||
[**Getting Started**][bo] guide, with some differences. Please note the
|
[**Getting Started**][ct] guide, with some differences. Please note the
|
||||||
following:
|
following:
|
||||||
|
|
||||||
* Don’t forget to invoke relevant commands with `--coin=eth` or `--coin=etc`.
|
* Don’t forget to invoke relevant commands with `--coin=eth` or `--coin=etc`.
|
||||||
|
|
@ -156,7 +156,7 @@ On your offline machine, sign the TX:
|
||||||
$ mmgen-txsign --coin=eth --token=eos ABC123-EOS[10,50000].rawtx
|
$ mmgen-txsign --coin=eth --token=eos ABC123-EOS[10,50000].rawtx
|
||||||
```
|
```
|
||||||
|
|
||||||
*You can also set up and use [autosigning][X] on the offline machine.*
|
*You can also set up and use [**autosigning**][ax] on the offline machine.*
|
||||||
|
|
||||||
On your online machine, send the TX:
|
On your online machine, send the TX:
|
||||||
|
|
||||||
|
|
@ -242,10 +242,10 @@ commands. It’s that simple!
|
||||||
|
|
||||||
### <a id="a_xmr">Monero (XMR)</a>
|
### <a id="a_xmr">Monero (XMR)</a>
|
||||||
|
|
||||||
MMGen Wallet’s Monero support includes automated wallet creation/syncing and
|
Monero is fully supported by MMGen Wallet.
|
||||||
transacting via the [`mmgen-xmrwallet`][mx] command. Make sure that
|
|
||||||
[Monerod][M] is installed and running and that `monero-wallet-rpc` is located
|
Make sure that [Monerod][M] is installed and running and that
|
||||||
in your executable path.
|
`monero-wallet-rpc` is located in your executable path.
|
||||||
|
|
||||||
<a id="a_xmr_req">Install the Python XMR requirements:</a>
|
<a id="a_xmr_req">Install the Python XMR requirements:</a>
|
||||||
|
|
||||||
|
|
@ -260,6 +260,32 @@ $ python3 -m pip install -r keccak-requirements.txt # see above
|
||||||
$ python3 -m pip install -r xmr-requirements.txt
|
$ python3 -m pip install -r xmr-requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Wallet creation and transacting via the compatibility layer
|
||||||
|
|
||||||
|
This is now the preferred way to transact XMR, replacing the deprecated
|
||||||
|
`mmgen-xmrwallet` command for most operations. Everything works as described
|
||||||
|
in the [**Getting Started**][ct] guide, with the following differences:
|
||||||
|
|
||||||
|
- Manual transacting is not supported, only version 2 [**autosigning**][ax].
|
||||||
|
- XMR compatibility mode must be enabled. Use `--xmrwallet-compat` for online
|
||||||
|
commands, or set `xmrwallet_compat` to `true` in your config file.
|
||||||
|
- The `mmgen-addrgen` script is not used. Instead, addresses are created
|
||||||
|
automatically when `mmgen-autosign setup` is run with the `--xmrwallets`
|
||||||
|
option. Type `mmgen-autosign --help` for more information.
|
||||||
|
- After autosign setup, `mmgen-addrimport --coin=xmr` is run on the online
|
||||||
|
machine with no arguments. This creates the watch-only wallet or wallets
|
||||||
|
that together comprise the user’s tracking wallet. For watch-only wallets
|
||||||
|
that already exist, no action is performed.
|
||||||
|
- The `mmgen-xmrwallet` script may be used to list and view sent transactions
|
||||||
|
on the removable device. Type `mmgen-xmrwallet --help` for details.
|
||||||
|
- New accounts and addresses may be added to the tracking wallet via
|
||||||
|
`mmgen-tool --coin=xmr listaddresses`.
|
||||||
|
|
||||||
|
#### Wallet creation and transacting via `mmgen-xmrwallet` (deprecated)
|
||||||
|
|
||||||
|
Monero support includes automated wallet creation/syncing and transacting via
|
||||||
|
the [`mmgen-xmrwallet`][mx] command.
|
||||||
|
|
||||||
*The following instructions are applicable for a hot wallet setup. To learn
|
*The following instructions are applicable for a hot wallet setup. To learn
|
||||||
how to cold sign transactions using MMGen Wallet’s autosign feature, first
|
how to cold sign transactions using MMGen Wallet’s autosign feature, first
|
||||||
familiarize yourself with the basic concepts here and then consult the OFFLINE
|
familiarize yourself with the basic concepts here and then consult the OFFLINE
|
||||||
|
|
@ -410,9 +436,9 @@ the MMGen Project.
|
||||||
[y]: https://github.com/ethereum/pyethereum
|
[y]: https://github.com/ethereum/pyethereum
|
||||||
[P]: https://pypi.org/project/pip
|
[P]: https://pypi.org/project/pip
|
||||||
[M]: https://getmonero.org/downloads/#linux
|
[M]: https://getmonero.org/downloads/#linux
|
||||||
[X]: cmds/command-help-autosign.md
|
[ax]: Autosigning.md
|
||||||
[gs]: Getting-Started-with-MMGen-Wallet.md
|
[gs]: Getting-Started-with-MMGen-Wallet.md
|
||||||
[bo]: Getting-Started-with-MMGen-Wallet.md#a_bo
|
[ct]: Getting-Started-with-MMGen-Wallet.md#a_ct
|
||||||
[si]: Install-Bitcoind-from-Source-on-Linux.md
|
[si]: Install-Bitcoind-from-Source-on-Linux.md
|
||||||
[bi]: Install-Bitcoind.md#a_d
|
[bi]: Install-Bitcoind.md#a_d
|
||||||
[p8]: Install-Bitcoind.md#a_r
|
[p8]: Install-Bitcoind.md#a_r
|
||||||
|
|
|
||||||
90
doc/wiki/Autosigning.md
Normal file
90
doc/wiki/Autosigning.md
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
### [Manual transacting](#as_r) | [Autosigning v1](#as_v1) | [Autosigning v2](#as_v2)
|
||||||
|
|
||||||
|
For most situations, Version 2 autosigning is the best way to transact with
|
||||||
|
MMGen Wallet.
|
||||||
|
|
||||||
|
## <a id="as_r">Transacting, the manual way</a>
|
||||||
|
|
||||||
|
Transacting manually involves the following steps:
|
||||||
|
|
||||||
|
#### Preparation of signing session:
|
||||||
|
1. Boot and log in to offline signing machine
|
||||||
|
|
||||||
|
#### Transacting:
|
||||||
|
1. On online machine, create transaction with [`mmgen-txcreate`][tc] (or [`mmgen-swaptxcreate`][sc])
|
||||||
|
1. Insert removable device
|
||||||
|
1. Mount removable device
|
||||||
|
1. Copy transaction file to removable device
|
||||||
|
1. Unmount removable device
|
||||||
|
1. Extract removable device and transfer it to offline machine
|
||||||
|
1. Mount removable device
|
||||||
|
1. Locate transaction file on removable device, sign it with [`mmgen-txsign`][ts]
|
||||||
|
1. Unmount removable device
|
||||||
|
1. Extract removable device and transfer it to online machine
|
||||||
|
1. Mount removable device
|
||||||
|
1. Locate signed transaction file on removable device, send it with [`mmgen-txsend`][tx]
|
||||||
|
|
||||||
|
Admittedly, this is all quite tedious. To simplify the transaction workflow,
|
||||||
|
Version 1 Autosigning was introduced.
|
||||||
|
|
||||||
|
## <a id="as_v1">Autosigning, Version 1</a>
|
||||||
|
|
||||||
|
Here the main innovation was to eliminate keyboard interaction with the
|
||||||
|
offline signing machine during the signing process.
|
||||||
|
|
||||||
|
#### <a id="as_v1_s">Preparation of signing session:
|
||||||
|
1. Boot and log in to offline signing machine
|
||||||
|
1. Set up autosigning session ([`mmgen-autosign setup`][as])
|
||||||
|
1. Start signing loop ([`mmgen-autosign wait`][as])
|
||||||
|
|
||||||
|
#### Transacting:
|
||||||
|
1. On online machine, create transaction with [`mmgen-txcreate`][tc] (or [`mmgen-swaptxcreate`][sc])
|
||||||
|
1. Insert removable device
|
||||||
|
1. Mount removable device
|
||||||
|
1. Copy transaction file to `/mnt/mmgen_autosign/tx` on removable device
|
||||||
|
1. Unmount removable device
|
||||||
|
1. Extract removable device and transfer it to offline machine
|
||||||
|
1. Wait for [autosigning][as] to complete
|
||||||
|
1. Extract removable device and transfer it to online machine
|
||||||
|
1. Mount removable device
|
||||||
|
1. Locate signed transaction file on removable device, send it with [`mmgen-txsend`][tx]
|
||||||
|
|
||||||
|
#### Differences compared to manual method:
|
||||||
|
|
||||||
|
- signing session preparation involves additional steps
|
||||||
|
- signing requires no keyboard interaction
|
||||||
|
|
||||||
|
While this is already much better, there was still room for improvement.
|
||||||
|
Enter Version 2 Autosigning.
|
||||||
|
|
||||||
|
## <a id="as_v2">Autosigning, Version 2</a>
|
||||||
|
|
||||||
|
Here the main innovation was to automate all mounting, unmounting, and file
|
||||||
|
copying operations. Version 2 autosigning is sometimes referred to in program
|
||||||
|
output by the term “automount”.
|
||||||
|
|
||||||
|
#### Preparation of signing session:
|
||||||
|
1. Same as for [Version 1](#as_v1_s)
|
||||||
|
|
||||||
|
#### Transacting:
|
||||||
|
1. On online machine, insert removable device
|
||||||
|
1. Create transaction with [`mmgen-txcreate`][tc] (or [`mmgen-swaptxcreate`][sc])
|
||||||
|
1. Extract removable device and transfer it to offline machine
|
||||||
|
1. Wait for [autosigning][as] to complete
|
||||||
|
1. Extract removable device and transfer it to online machine
|
||||||
|
1. Send transaction with [`mmgen-txsend`][tx]
|
||||||
|
|
||||||
|
#### Differences compared to Version 1:
|
||||||
|
- filename arguments are omitted from all commands
|
||||||
|
- for online operations, the `--autosign` option must be supplied, or
|
||||||
|
`autosign` set to `true` in the config file
|
||||||
|
- only one transaction may be created-signed-sent at a time (Version 1 allows
|
||||||
|
for multiple signables per signing operation)
|
||||||
|
- unsent transactions may be aborted and ranges of sent transactions viewed or
|
||||||
|
checked for confirmation status (see [`mmgen-txsend --help`][tx])
|
||||||
|
|
||||||
|
[tc]: cmds/command-help-txcreate.md
|
||||||
|
[ts]: cmds/command-help-txsign.md
|
||||||
|
[tx]: cmds/command-help-txsend.md
|
||||||
|
[sc]: cmds/command-help-swaptxcreate.md
|
||||||
|
[as]: cmds/command-help-autosign.md
|
||||||
|
|
@ -48,8 +48,9 @@ commands and filenames) will speed up your work at the command line greatly.
|
||||||
|
|
||||||
The examples in this tutorial are geared towards Bitcoin, but with some
|
The examples in this tutorial are geared towards Bitcoin, but with some
|
||||||
modification they may be used with altcoins and forkcoins for which MMGen
|
modification they may be used with altcoins and forkcoins for which MMGen
|
||||||
Wallet supports transaction operations (BCH, LTC, ETH, ETC, RUNE and XMR as of
|
Wallet supports transaction operations (BCH, LTC, ETH, ETC, ERC20 tokens, RUNE
|
||||||
this writing). See [Altcoin-and-Forkcoin-Support][09] for more details.
|
and XMR as of this writing). See [**Altcoin-and-Forkcoin-Support**][09] for
|
||||||
|
more details.
|
||||||
|
|
||||||
#### <a id="a_iv">Invocation</a>
|
#### <a id="a_iv">Invocation</a>
|
||||||
|
|
||||||
|
|
@ -170,9 +171,10 @@ overestimated.
|
||||||
|
|
||||||
### <a id="a_tr">Transacting</a>
|
### <a id="a_tr">Transacting</a>
|
||||||
|
|
||||||
*The following transacting information is applicable to BTC, BCH, LTC, ETH, ETC
|
*Transacting is supported for BTC, BCH, LTC, ETH, ETC, ERC20 tokens, RUNE and
|
||||||
and RUNE. For transacting with Monero, consult [Altcoin-and-Forkcoin-Support][x]
|
XMR. The description below applies to BTC, BCH and LTC. For other coins, there
|
||||||
and the [`mmgen-xmrwallet`][mx] help screen.*
|
are important differences: consult [**Altcoin-and-Forkcoin-Support**][09] for
|
||||||
|
details.*
|
||||||
|
|
||||||
#### <a id="a_ga">Generate addresses (offline computer)</a>
|
#### <a id="a_ga">Generate addresses (offline computer)</a>
|
||||||
|
|
||||||
|
|
@ -337,6 +339,15 @@ TOTAL: 1 BTC
|
||||||
|
|
||||||
#### <a id="a_ct">Create a transaction (online computer)</a>
|
#### <a id="a_ct">Create a transaction (online computer)</a>
|
||||||
|
|
||||||
|
*The following decribes the old, manual way of transacting with MMGen Wallet.
|
||||||
|
Instead, you should consider setting up [transaction autosigning][ax] on your
|
||||||
|
offline machine, which will greatly simplify the transacting process. For
|
||||||
|
optimal user experience, the offline signing device should be a Raspberry Pi
|
||||||
|
or other single-board computer for which LED signaling support is provided.*
|
||||||
|
|
||||||
|
*The [**Autosigning**][ax] wiki page outlines the differences between the manual
|
||||||
|
and autosigning methods of transacting.*
|
||||||
|
|
||||||
Now that you have some coins under MMGen Wallet’s control, you’re ready to
|
Now that you have some coins under MMGen Wallet’s control, you’re ready to
|
||||||
create a transaction. Note that transactions are harmless until they’re signed
|
create a transaction. Note that transactions are harmless until they’re signed
|
||||||
and broadcast to the network, so feel free to experiment and create transactions
|
and broadcast to the network, so feel free to experiment and create transactions
|
||||||
|
|
@ -476,6 +487,17 @@ Network: BTC MAINNET
|
||||||
4) 123c.. 6 3PeI55vtp2bX2uKDkAAR2c6e.. 89ABCDEF:S:5 0.0999 7
|
4) 123c.. 6 3PeI55vtp2bX2uKDkAAR2c6e.. 89ABCDEF:S:5 0.0999 7
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Note that all tracking wallet views support the --scroll option, which provides
|
||||||
|
a curses-like scrolling interface that greatly improves the user experience when
|
||||||
|
there’s more than a screenful of lines to display. The option may also be set
|
||||||
|
in the configuration file.
|
||||||
|
|
||||||
|
```text
|
||||||
|
$ mmgen-txcreate --scroll --info
|
||||||
|
$ mmgen-tool --scroll twview
|
||||||
|
$ mmgen-tool --scroll listaddresses
|
||||||
|
```
|
||||||
|
|
||||||
Since you’ve sent 0.1 BTC to a third party, your balance has decreased by 0.1
|
Since you’ve sent 0.1 BTC to a third party, your balance has decreased by 0.1
|
||||||
BTC plus the transaction fee of 0.0001 BTC.
|
BTC plus the transaction fee of 0.0001 BTC.
|
||||||
|
|
||||||
|
|
@ -849,18 +871,12 @@ Signed transaction written to file 'ABCDEF[0.1].sigtx'
|
||||||
|
|
||||||
#### <a id="a_hw">Hot wallets</a>
|
#### <a id="a_hw">Hot wallets</a>
|
||||||
|
|
||||||
*Instead of using a hot wallet, you should consider setting up [transaction
|
For greater transacting convenience, it’s possible to place a small portion of
|
||||||
autosigning][07] on your offline machine. Autosigning makes it possible to
|
your funds in a “hot wallet” on your online computer. You may then use the
|
||||||
transact directly from cold storage in a secure and convenient way. Ideally,
|
`mmgen-txdo` command to quickly create, sign and send transactions in one
|
||||||
your autosigning device should be a Raspberry Pi or other single-board computer
|
operation.
|
||||||
for which MMGen Wallet provides LED support. However, an old laptop running
|
|
||||||
Linux or macOS will also suffice, provided its network interfaces are removed
|
|
||||||
or disabled.*
|
|
||||||
|
|
||||||
To use MMGen Wallet for not only cold storage but also day-to-day transacting,
|
It’s recommended to entrust only very small sums to the hot wallet.
|
||||||
it’s possible to place a portion of your funds in a “hot wallet” on your online
|
|
||||||
computer. You may then use the `mmgen-txdo` command to quickly create, sign and
|
|
||||||
send transactions in one operation.
|
|
||||||
|
|
||||||
*Note: prior to Version 0.11.0, MMGen Wallet implemented hot wallets using
|
*Note: prior to Version 0.11.0, MMGen Wallet implemented hot wallets using
|
||||||
[key-address files][05], but these have now been obsoleted by [subwallets][06].
|
[key-address files][05], but these have now been obsoleted by [subwallets][06].
|
||||||
|
|
@ -1124,11 +1140,10 @@ $ python3 -m pip install user --upgrade dist/*.whl
|
||||||
[04]: MMGen-Wallet-Quick-Start-with-Regtest-Mode.md
|
[04]: MMGen-Wallet-Quick-Start-with-Regtest-Mode.md
|
||||||
[05]: Key-address-files.md
|
[05]: Key-address-files.md
|
||||||
[06]: Subwallets.md
|
[06]: Subwallets.md
|
||||||
[07]: cmds/command-help-autosign.md
|
|
||||||
[08]: Install-Bitcoind.md
|
[08]: Install-Bitcoind.md
|
||||||
[09]: Altcoin-and-Forkcoin-Support.md
|
[09]: Altcoin-and-Forkcoin-Support.md
|
||||||
[x]: Altcoin-and-Forkcoin-Support.md#a_xmr
|
|
||||||
[cp]: ../../../../commits/master
|
[cp]: ../../../../commits/master
|
||||||
[mx]: cmds/command-help-xmrwallet.md
|
[mx]: cmds/command-help-xmrwallet.md
|
||||||
[li]: Install-MMGen-Wallet-on-Linux-or-macOS.md
|
[li]: Install-MMGen-Wallet-on-Linux-or-macOS.md
|
||||||
[wi]: Install-MMGen-Wallet-on-Microsoft-Windows.md
|
[wi]: Install-MMGen-Wallet-on-Microsoft-Windows.md
|
||||||
|
[ax]: Autosigning.md
|
||||||
|
|
|
||||||
|
|
@ -437,7 +437,7 @@ Offline upgrade:
|
||||||
[ib]: Install-Bitcoind.md
|
[ib]: Install-Bitcoind.md
|
||||||
[gs]: Getting-Started-with-MMGen-Wallet.md
|
[gs]: Getting-Started-with-MMGen-Wallet.md
|
||||||
[pl]: Altcoin-and-Forkcoin-Support.md#a_ed
|
[pl]: Altcoin-and-Forkcoin-Support.md#a_ed
|
||||||
[ax]: cmds/command-help-autosign.md
|
[ax]: Autosigning.md
|
||||||
[mc]: Altcoin-and-Forkcoin-Support.md#a_xmr
|
[mc]: Altcoin-and-Forkcoin-Support.md#a_xmr
|
||||||
[ts]: Test-Suite.md
|
[ts]: Test-Suite.md
|
||||||
[vv]: https://docs.python.org/3/library/venv.html
|
[vv]: https://docs.python.org/3/library/venv.html
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue