diff --git a/doc/wiki/Altcoin-and-Forkcoin-Support.md b/doc/wiki/Altcoin-and-Forkcoin-Support.md index 3515cac4..cf3a2d7e 100644 --- a/doc/wiki/Altcoin-and-Forkcoin-Support.md +++ b/doc/wiki/Altcoin-and-Forkcoin-Support.md @@ -94,7 +94,7 @@ the `--help` option for more complete information. #### Transacting and other basic operations 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: * 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 ``` -*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: @@ -242,10 +242,10 @@ commands. It’s that simple! ### Monero (XMR) -MMGen Wallet’s Monero support includes automated wallet creation/syncing and -transacting via the [`mmgen-xmrwallet`][mx] command. Make sure that -[Monerod][M] is installed and running and that `monero-wallet-rpc` is located -in your executable path. +Monero is fully supported by MMGen Wallet. + +Make sure that [Monerod][M] is installed and running and that +`monero-wallet-rpc` is located in your executable path. Install the Python XMR requirements: @@ -260,6 +260,32 @@ $ python3 -m pip install -r keccak-requirements.txt # see above $ 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 how to cold sign transactions using MMGen Wallet’s autosign feature, first 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 [P]: https://pypi.org/project/pip [M]: https://getmonero.org/downloads/#linux -[X]: cmds/command-help-autosign.md +[ax]: Autosigning.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 [bi]: Install-Bitcoind.md#a_d [p8]: Install-Bitcoind.md#a_r diff --git a/doc/wiki/Autosigning.md b/doc/wiki/Autosigning.md new file mode 100644 index 00000000..7382a831 --- /dev/null +++ b/doc/wiki/Autosigning.md @@ -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. + +## Transacting, the manual way + +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. + +## Autosigning, Version 1 + +Here the main innovation was to eliminate keyboard interaction with the +offline signing machine during the signing process. + +#### 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. + +## Autosigning, Version 2 + +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 diff --git a/doc/wiki/Getting-Started-with-MMGen-Wallet.md b/doc/wiki/Getting-Started-with-MMGen-Wallet.md index aa4f2ef5..97491f3e 100644 --- a/doc/wiki/Getting-Started-with-MMGen-Wallet.md +++ b/doc/wiki/Getting-Started-with-MMGen-Wallet.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 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 -this writing). See [Altcoin-and-Forkcoin-Support][09] for more details. +Wallet supports transaction operations (BCH, LTC, ETH, ETC, ERC20 tokens, RUNE +and XMR as of this writing). See [**Altcoin-and-Forkcoin-Support**][09] for +more details. #### Invocation @@ -170,9 +171,10 @@ overestimated. ### Transacting -*The following transacting information is applicable to BTC, BCH, LTC, ETH, ETC -and RUNE. For transacting with Monero, consult [Altcoin-and-Forkcoin-Support][x] -and the [`mmgen-xmrwallet`][mx] help screen.* +*Transacting is supported for BTC, BCH, LTC, ETH, ETC, ERC20 tokens, RUNE and +XMR. The description below applies to BTC, BCH and LTC. For other coins, there +are important differences: consult [**Altcoin-and-Forkcoin-Support**][09] for +details.* #### Generate addresses (offline computer) @@ -337,6 +339,15 @@ TOTAL: 1 BTC #### Create a transaction (online computer) +*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 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 @@ -476,6 +487,17 @@ Network: BTC MAINNET 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 BTC plus the transaction fee of 0.0001 BTC. @@ -849,18 +871,12 @@ Signed transaction written to file 'ABCDEF[0.1].sigtx' #### Hot wallets -*Instead of using a hot wallet, you should consider setting up [transaction -autosigning][07] on your offline machine. Autosigning makes it possible to -transact directly from cold storage in a secure and convenient way. Ideally, -your autosigning device should be a Raspberry Pi or other single-board computer -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.* +For greater transacting convenience, it’s possible to place a small 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. -To use MMGen Wallet for not only cold storage but also day-to-day transacting, -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. +It’s recommended to entrust only very small sums to the hot wallet. *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]. @@ -1124,11 +1140,10 @@ $ python3 -m pip install user --upgrade dist/*.whl [04]: MMGen-Wallet-Quick-Start-with-Regtest-Mode.md [05]: Key-address-files.md [06]: Subwallets.md -[07]: cmds/command-help-autosign.md [08]: Install-Bitcoind.md [09]: Altcoin-and-Forkcoin-Support.md -[x]: Altcoin-and-Forkcoin-Support.md#a_xmr [cp]: ../../../../commits/master [mx]: cmds/command-help-xmrwallet.md [li]: Install-MMGen-Wallet-on-Linux-or-macOS.md [wi]: Install-MMGen-Wallet-on-Microsoft-Windows.md +[ax]: Autosigning.md diff --git a/doc/wiki/Install-MMGen-Wallet-on-Microsoft-Windows.md b/doc/wiki/Install-MMGen-Wallet-on-Microsoft-Windows.md index 8d79aba0..e8ac96f3 100644 --- a/doc/wiki/Install-MMGen-Wallet-on-Microsoft-Windows.md +++ b/doc/wiki/Install-MMGen-Wallet-on-Microsoft-Windows.md @@ -437,7 +437,7 @@ Offline upgrade: [ib]: Install-Bitcoind.md [gs]: Getting-Started-with-MMGen-Wallet.md [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 [ts]: Test-Suite.md [vv]: https://docs.python.org/3/library/venv.html