- once set up, requires no monitor or keyboard input; just insert USB stick,
wait for signing to complete and remove
- LED status signaling on Raspberry Pi and Orange Pi
- basic data types in obj.py rewritten
- new test suite 'test/objtest.py' for testing basic data types
- new compressed address type with the 'C' identifier
- Bob and Alice regtest mode for testing MMGen in a mock two-user environment
* All MMGen commands are available in this mode.
* Set up with 'mmgen-regtest setup'. Bob and Alice's wallets are funded with
500 BTC each. Use the --mixed switch to import mixed address types in
Bob and Alice's tracking wallets.
* Transact as Bob by adding --bob switch to MMGen commands
* Transact as Alice by adding --alice switch to MMGen commands
* After sending a transaction, mine a block to confirm it with
'mmgen-regtest generate'
The bitcoin daemon is stopped and restarted automatically when switching
between users.
- OO rewrite of key/addr generation interface (KeyGenerator,AddrGenerator)
- New data objects: PrivKey,PubKey,WifKey
- rewrite of read-only attr implementation for addr/tx/tw list entries
(MMGenImmutableAttr,MMGenListItemAttr descriptors)
- txsign: build key list of addrlist objects rather than addr,key tuples
- Generate Segwit addresses by invoking 'mmgen-addrgen' with the
'--type segwit' option
- Import Segwit addresses into the tracking wallet as usual
- Segwit and legacy MMGen addresses are distinguished by 'S' and 'L'
identifiers in the tracking wallet and command line
Transaction example:
mmgen-txcreate F00BAA12:L:21,1.23 F00BAA12:S:1
(spend 1.23 BTC to legacy address 21 of your default wallet (with Seed ID
F00BAA12) and send the change to Segwit address 1)
Segwit and legacy addresses for a given seed are generated from different
sub-seeds so are cryptographically unrelated to each other.
Since MMGen's legacy P2PKH addresses are uncompressed, use of the new Segwit
addresses significantly reduces transaction size.
Until Segwit activation on mainnet, users can try out the new functionality on
testnet or in regtest mode.
* Under Linux, data directory is '~/.mmgen'; config file is 'mmgen.cfg'.
* If default wallet is enabled, specifying the wallet on the command line is
no longer necessary. If not, all MMGen commands behave as previously.
* The datadir structure mirrors that of Bitcoin Core: mainnet and testnet
share a common config file, but testnet puts its other files including its
default wallet in a separate subdirectory 'testnet3'.
New routines have been added to the test suite to test these features.
Tested only under Linux.
Datadir '~/.mmgen' and config file 'mmgen.cfg' added:
* Global vars are now overriden in this order:
1) config file
2) environmental variables beginning with 'MMGEN_' (listed in globalvars.py)
3) command line
Always get user entropy, even for non-critical randomness, unless '-r0'.
rpcuser,rpcpassword now override cookie authentication, as with Core.
RPC to remote daemon now supported with '--rpc-host' option.
Incognito wallet is 48, 56 or 64 bytes of apparently random data.
Allows user to hide wallet data in a pre-existing file or on a disk
partition (preferably filled in advance with random data).
Can be used to hide wallet securely in unencrypted cloud storage or
on paper, without revealing the nature of the data.
Data may be written at a user-specified offset into the file or
partition, in which case user must remember the offset.
Each export operation uses a new random init vector to create different
data each time. This allows the user to hide wallets at different
locations on the Net without detection.
User must remember hash preset in addition to passphrase (though trial
and error can be used if it's forgotten).
Fully integrated with address generation and tx signing operations.