Commit graph

78 commits

Author SHA1 Message Date
MMGen
df0385160b
XMR (Monero) key/address generation support and wallet generating utility
- Monero key-address files include spendkey, viewkey and wallet password
- Wallet password is first 16 bytes of SHA256x2(spendkey)
- Generate Monero wallets either by hand with:
    1) `monero-wallet-cli --generate-from-spend-key walletfile`, using the keyaddrfile data,
  or automatically, using:
    2) `mmgen-tool keyaddrlist2monerowallet keyaddrfile`
  The utility will generate a wallet for each key/address pair in the keyaddrfile and encrypt
  it using the password.  The password is supplied via stdin.

- Other feature: 32-byte hexadecimal password generation with `mmgen-passgen --hex`
2017-12-28 16:03:28 +03:00
MMGen
91ac2effb3
Key/address generation support for 144 altcoins
Support for these coins is EXPERIMENTAL, use at your own risk

    EXAMPLE: generate 10 Dogecoin key/address pairs with your default wallet:

        `mmgen-keygen --coin=doge 1-10`

    Keys for different coins are distinct, so users needn't worry about key reuse.

    Supported alts: 2give,42,611,ac,acoin,alf,anc,apex,arco,arg,aur,b2x,bcf,bch,blk,bmc,bqc,bsty,btcd,btq,bucks,cann,cash,cat,cbx,ccn,cdn,chc,clam,con,cpc,crps,csh,dash,dcr,dfc,dgb,dgc,doge,doged,dope,dvc,efl,emc,emd,enrg,esp,etc,eth,fai,fc2,fibre,fjc,flo,flt,fst,ftc,gcr,good,grc,gun,ham,html5,hyp,icash,infx,inpay,ipc,jbs,judge,lana,lat,ldoge,lmc,ltc,mars,mcar,mec,mint,mobi,mona,moon,mrs,mue,mxt,myr,myriad,mzc,neos,neva,nka,nlg,nmc,nto,nvc,ok,omc,omni,onion,onx,part,pink,pivx,pkb,pnd,pot,ppc,ptc,pxc,qrk,rain,rbt,rby,rdd,ric,sdc,sib,smly,song,spr,start,sys,taj,tit,tpc,trc,ttc,tx,uno,via,vpn,vtc,wash,wdc,wisc,wkc,wsx,xcn,xgb,xmg,xpm,xpoke,xred,xst,xvc,zec,zet,zlq,zoom,zrc

	Test the new functionality with `scripts/test-release.sh -Pn master alts`

B2X support disabled pending further testing
2017-12-24 15:26:23 +03:00
MMGen
1cc64e1eb9
Zcash z-address generation with custom sha256 implementation
- Tests have been updated, test with `scripts/test-release.sh -Pn master alts`
2017-12-16 12:48:47 +03:00
philemon
420d0e9699
B2X support, locktime-based coin splitting utility
- full support for B2X fork
- `mmgen-split` coin splitting utility for replayable forks
- `mmgen-regtest fork` command for testing forking scenarios
- `regtest_split` command added to `test/test.py` test suite
- timelock support for `txcreate` and `txdo`
- nlocktime and nsequence checks after signing and before sending
2017-11-13 22:50:35 +03:00
philemon
8fb3efd99c
mmgen-autosign: encrypt signing wallet with session key on removable device 2017-10-29 15:06:16 +03:00
philemon
35d1091159
Basic altcoin framework, full Litecoin support
- LTC: tested on mainnet, full test suite support
- simultaneous autosigning for all supported coins (BTC,BCH,LTC)
2017-10-28 00:11:00 +03:00
philemon
a4c6c45a13
mmgen-autosign: batch offline transaction auto-signing
- 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
2017-10-16 00:55:03 +03:00
philemon
d3f0f26668
bitcoin.py -> protocol.py: CoinProtocol classes and methods
scripts/test-release.sh: BCH tests added
2017-10-03 22:26:24 +03:00
philemon
b23b497d77
obj.py rewrite+test suite, Bob and Alice regtest mode, compressed addresses
- 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.
2017-08-14 13:04:25 +03:00
philemon
85cf5b3cbb
The original implementation of mmgen-passgen, using sha256x10(seed+id_str)
Superseded by the current implementation using sha256x10(hmac(seed,id_str,hashlib.sha256))
2017-07-07 16:09:28 +03:00
philemon
0ab39e4a22
Update copyright dates 2017-05-31 18:16:08 +03:00
philemon
0cb6e8c1d1
Orange Pi build fix (secp256k1 mod: no libgmp) 2017-05-31 18:14:06 +03:00
philemon
93c99755a7
[tx]: BIP 125 replace-by-fee (RBF) support:
* create replaceable transactions with 'mmgen-txcreate' and 'mmgen-txdo'
        using the '--rbf' option
      * create replacement transactions from existing MMGen transactions
        using the new, optionally scriptable 'mmgen-txbump' command
      * Bitcoind must be started with the '-walletrbf' option to enable RBF
        functionality

[tx]: Command scriptability:
      * New '--yes' option makes 'txbump' and 'txsign' fully non-interactive
        and 'txcreate' and 'txsend' mostly non-interactive

[tx]: Satoshis-per-byte format:
      * Tx fees, both on the command line and at the interactive prompt, may be
        specified either as absolute BTC amounts or in satoshis-per-byte format
        (an integer followed by the letter 's')

[tx]: Fees
	  * Completely reworked fee-handling code with better fee checking
	  * default tx fee eliminated, max_tx_fee configurable in mmgen.cfg

Bugfixes and usability improvements:
      *	'mmgen-tool listaddresses' now list addresses from multiple seeds
        correctly
      * Improved user interaction with all 'mmgen-tx*' commands
2017-05-17 15:37:30 +03:00
philemon
eb6f7ef195
g.keywords added 2017-01-08 08:51:50 +03:00
philemon
6bdb70b3e9
[tx]: new command: mmgen-txdo - create, sign and send tx in one operation
[tx]: tx file format change: txid now appended to file after tx is broadcast
2016-12-12 00:30:23 +03:00
philemon
229845c8b6
Version 0.8.9rc1 2016-12-08 18:02:28 +03:00
philemon
10fe255145
[mswin] (mingw32,mingw64): secp256k1 support 2016-12-02 20:05:55 +03:00
philemon
978565f5bf
Data directory, config file and default wallet support:
* 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.
2016-11-21 19:59:03 +03:00
philemon
027a8430ac
setup.py: file permissions fix for data_files/* 2016-11-17 19:42:12 +03:00
philemon
456cc1f76c
Long (common) opts added for setting global vars; display with '--longhelp'.
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.
2016-11-17 18:10:27 +03:00
philemon
3897ec3297
Version 0.8.7a
--testnet option added to all relevant scripts
  utility scripts under scripts/ updated
2016-11-14 14:45:08 +03:00
philemon
fda8f25385 Version 0.8.7 2016-11-12 13:26:14 +03:00
philemon
ff100674f3 v0.8.7rc1 2016-11-11 16:17:07 +03:00
philemon
0be6059674 Version 0.8.6
New features/improvements:

	* Address generation using secp256k1 library (Linux only)

Instructions for installing the secp256k1 library on your system:

	doc/wiki/install-linux/Install-MMGen-on-Debian-or-Ubuntu-Linux.md

If secp256k1 is not installed on the system, MMGen remains usable. It just falls
back to 'keyconv', or failing that, python-ecdsa for generating addresses.
2016-08-24 17:20:48 +03:00
philemon
5676d7a3f9
addr generation with secp256k1mod 2016-08-22 14:20:46 +03:00
philemon
e042cd0088 Doc update from wiki, Windows pager fix 2016-07-31 19:00:57 +03:00
philemon
8d8e678977 Version 0.8.5rc2 2016-07-29 10:02:43 +03:00
philemon
7affd8ebea Version 0.8.5rc1 2016-07-27 22:55:47 +03:00
philemon
5ca6412b23 object-oriented tracking wallet code
updates for oo tx code
updates for test/test.py
2016-07-12 22:25:53 +03:00
philemon
20c5ebc30d MMGen version 0.8.4 2016-06-25 19:30:30 +03:00
philemon
235cd4d8e2 Dynamic transaction fees 2016-06-25 18:27:45 +03:00
philemon
9a6d021778 Minor changes, created MANIFEST.in 2016-03-06 08:55:50 +03:00
philemon
956eeab186 MMGen version 0.8.3
New features/improvements:

	* New native Bitcoin RPC library.
	* Support for cookie-based RPC authentication (new in Bitcoin Core v0.12.0).
	* Batch mode available when listing and importing addresses.
	* mmgen-tool listaddresses: 'addrs' argument allows you to specify an
	  address or range of addresses.

NOTE: if MMGen is already installed on your system, you must remove your
existing installation by hand before installing this new version.  On Linux,
this means deleting everything under the directory
'/usr/local/lib/python2.7/dist-packages/mmgen/'.  Also, if you did a 'git pull'
instead of a fresh clone, you must delete the 'build' directory in the
repository root before installing.

The 'mmgen-pywallet' utility has been removed.  It's no longer needed, as the
'bitcoin-cli dumpwallet' command (available since Core v0.9.0) provides
equivalent functionality.

The Windows port isn't being actively maintained at the moment.  Use at your own
risk, and report any problems on the Bitcointalk forum.
2016-02-28 16:41:43 +03:00
philemon
0b7f984249 Version 0.8.2 2015-10-25 16:06:07 +03:00
philemon
8fc94a8c64 Minor changes, bugfixes 2015-10-25 13:04:30 +03:00
philemon
85d94eaec1 Version 0.8.1 2015-05-01 22:04:07 +03:00
philemon
acd8eb26c5 Old non-oo wallet code and files removed
test/test.py updated
2015-05-01 10:39:45 +03:00
philemon
d3f07f3c9f Various bugfixes. 2015-04-30 00:09:29 +03:00
philemon
03b1b4b00e New 'mmgen-walletconv' utility converts to and from all available MMGen wallet
formats, thus obsoleting much of the functionality in '-walletgen' and
'-walletchk'.  This is the first script to utilize the new OO wallet code in
'seed.py'.

New tests in the 'test.py' suite.

	new file:   mmgen-walletconv
	new file:   mmgen/main_walletconv.py
	modified:   mmgen/seed.py
	modified:   test/test.py
2015-04-25 19:39:25 +03:00
philemon
f1f28a6e75 renamed: mmgen/config.py -> mmgen/globalvars.py
modified:   setup.py
2015-04-16 17:21:05 +03:00
philemon
98ba89ee76 Version 0.8.0 2015-04-01 13:52:54 +03:00
philemon
9d6c3223a8 Old tests deleted 2015-01-12 00:32:09 +03:00
philemon
9cbc2b13d0 Options fixes in 'mmgen-pywallet'
Added copies of wiki pages to doc/ for offline viewing
Added INSTALL and SIGNING_KEY.pub
2015-01-11 18:56:57 +03:00
philemon
c7056a7ba2 Improved options handling, some files moved and renamed.
Users who are upgrading must delete the 'opt' directory in their previous
installation before installing.  On a Linux system, this is typically
located at:

	/usr/local/lib/python2.7/dist-packages/mmgen/opt
2015-01-10 18:52:30 +03:00
philemon
01fbc328b8 New test suite for mmgen-tool: 'test/tooltest.py'
Additional tests for the 'test/test.py' suite
2015-01-09 21:02:16 +03:00
philemon
9bdfa13c20 Automated, pexpect-based test suite: 'test/test.py'
Linux-only, due to pexpect module dependencies.
2015-01-03 00:14:40 +03:00
philemon
17e6c2e086 modified: setup.py 2014-08-09 17:18:02 +04:00
philemon
d79338a11b modified: MANIFEST
modified:   setup.py
2014-08-07 22:35:02 +04:00
philemon
e328a6a24b Added features:
* 'mmgen-tool': file encryption utility with strong encryption
	* 'mmgen-tool': find hidden incognito data in file using the Incog ID
	* User may now supply additional entropy in all cases where random data is
	  needed.  This user entropy (typed symbols + keystroke intervals) is hashed
	  into a key with Scrypt and used to encrypt all random data produced during
	  the session by the OS.
2014-08-01 23:08:31 +04:00
philemon
e0166a15e6 Version 0.7.6a - bugfix release 2014-07-31 00:12:29 +04:00