github.com/piotrnar/gocoin@v0.0.0-20240512203912-faa0448c5e96/changelog.txt (about)

     1  1.10.3
     2  * Tools/balio: Some improvements around blockchair.com and blockcypher.com API
     3  * Tools/balio: Fixed balance fetching for Litecoin
     4  * Lib: New function (btc.Tx).ContainsOrdFile(), as per github.com/casey/ord
     5  * Client/WebUI: The fees chart for an already mined block shows the cross with reference to x and y axis
     6  * Client/WebUI/Home: Fixed blocks SPB values on the chart, as the ones showed previously were not accurate
     7  * Client/WebUI/Home: Added blocks Weight chart
     8  * Client/WebUI/Miners: Shows version data only for the recent blocks (as BIP9 has not been used for awhile)
     9  * Client: Fixed how the average TX fee is caluclated over "CFG.Stat.FeesBlks" (it was showing too low values)
    10  * Client: Don't send "getmp" messages if Mempool is more than half full
    11  * Tools/bdb - new command "-compress" to compress a "bl*.dat" file (after running node without "CFG.Memory.CompressBlockDB")
    12  * Client/TextUI: new command "usd" - tries to figure out curent BTC/USD price, using UTXOracle method
    13  * Client/WebUI: some improvements to the block fees chart (in Home and Blocks tab)
    14  * Client/TextUI: some code cleanup
    15  * Tools: each tool moved it its own sub-directory (IDE-s did not like multiple main-s in same folder)
    16  * Client/WebUI/Home: Shows the percentage occupancy of the ord inscriptions for each block
    17  * Tools/bdb - new command "-ord" to see ord inscriptions occupancy per block (use with "-ox" to extract the files)
    18  * Client: fixed lock problems releted to geting mempool content (only for peers we're authenticated with)
    19  * Lib: Chenges in "others/bip39" (invalid mnemonic error is more descriptiove, removed some warnings)
    20  * Lib/Utxo: New option for NewUnspentDb() allowing to specify how many map records to preallocate in case of rescan
    21  * Client: Different pre-defined values of preallocated records for Mainnet and Testnet (saves RAM)
    22  * Client: Free each block's bl.Txs after bl.CommitBlock(), during deep chain syncs (saves RAM)
    23  * Lib: Fix in handing chain re-orgs when a new head has less blocks, but more POW (exposed by ongoing testnet3 stressing)
    24  * Client/Network: improved the way how unfinished "getdata" is stored for later (when the send buffer is full)
    25  * Client/Network: do not sent "ping" messages to peers that we have pending block downloads from
    26  
    27  1.10.2 - 2022-09-06:
    28  * Client: New config value "Memory.CompressBlockDB" (default true)
    29  * Client: New config value "UTXOSave.CompressRecords" (default false)
    30  * Tools: utxo_compress and utxo_decompress have been fixed
    31  * Wallet: "bip39" switch can now have value of "-1", in which case the seed password will be treated as mnemonic
    32  * Wallet: New commands "-encrypt" and "-decrypt", for encrypting and decrypting files with wallet's seed (password)
    33  * Client: fixed a bug that could cause chain sync to abort with series of "bad-txnmrklroot" errors
    34  * Lib: Updated "lib/others/memory" to the recent version from "gitlab.com/cznic/memory" (old one could crash)
    35  * Client: No more talking to peers that do not advertise segwit support (unless through the friends.txt file)
    36  * Client/TextUI: "txdecode" shows sequence number of each input
    37  * Client/WebUI/Wallet: Also shows spending the mempool transactions
    38  
    39  1.10.1 - 2022-06-15
    40  * btc.VerifyKeyPair() alos does Schnorr sign/verify on the given key pair
    41  * Wallet: Make SchnorrSign nonce dependent not only on RNG but also on the hash being signed
    42  * Wallet: When listing non-hardend HD wallet (like Elecrum), also output the root Extended Public Key
    43  * Lib: Added "github.com/piotrnar/gocoin/lib/others/scrypt" package (for wallet - see below)
    44  * Wallet: added new config value "scrypt" - use extra scrypt function to convert password into private keys
    45  * Client: fixed the bug in the fix for the bandwidth limiter lock problem occuring when system time changing
    46  * Client: cleaned up some non-leathal race conditions, reformatted some code, got rid of some warnings
    47  * Wallet: New command line switch "-pks" to dump wallet's raw public keys (instead of deposit addresses)
    48  * Client/WebUI: Can work with raw-pubkeys wallets (wallet -list -pks), for smooth compatibility with all the deposit address types
    49  * Client/TextUI: "balance" command can now also take a raw public key (hex-encoded)
    50  * Client: Do not send "getmp" message to non-synchronized nodes
    51  * Wallet: For commmon types of HD Wallets, also change addresses are calculated (use hdsubs=2)
    52  * Wallet: New switch (or config file param) "-atype" replacing previous: "-segwit", "-bech32", "-tap", "-pks"
    53  * Wallet: The "-pub <addr>" command should now work with all types of deposit addresses
    54  * Client: Disconnect peers that have not sent any data within the last 5 minutes
    55  * Client: New config value "Stat.NoCounters" - to be set for possible performance improvement
    56  * Client: New config value "WebUI.SSLPort" (previously it was fixed to the default values)
    57  * Client: Do not talk to peers that provide no NETWORK servive (at least the limited one)
    58  * Client: Do not talk to peers that send nonce filled with zeros
    59  * Client: The friends file allows to define hostnames and user agents that are automatically marked as special
    60  * Client: Services field report NETWORK_LIMITED (instead of NETWORK) if config's "Memory.DataFilesKeep" is not zero
    61  * Client: Check env for "GOCOIN_CLIENT_CONFIG" to overwrite default "gocoin.conf" (but command line's "-cfg <fn>" has priority)
    62  
    63  1.10.0 - 2021-12-16
    64  * Added Taproot support
    65  * Wallet: New config/command line switch "minsig", to enforce ECDSA creation of signatures without the extra byte
    66  * Client: Force sending invs immediatelly, if a new inv is MSG_BLOCK type (for faster blocks propagation)
    67  * Client: Refactored peers DB management and handling of "addr" messages, added address flood protection
    68  * Package "lib/others/peersdb" moved to "client/network/peersdb"
    69  * Client/WebUI/Miners: Shows strings inside conbase tx for mined blocks
    70  * Client: Ignore "cmpctblock" messages when chain not in sync
    71  * Client: Do not connect to friends in single connection mode
    72  * Lib: Fix for a possible crash upon receiving a corrupt block (thx @lopp)
    73  * Client/TextUI: Added Taproot support to "richest" and "maxouts" commands
    74  * Wallet: For each listed segwit deposit address, extend the label with the reference to its P2KH address
    75  * Client/WebUI: SSL server binds to TCP port 14433 in testnet mode
    76  * Client: BlockDB can work with new "blNNNNNNNN.dat" filenames, as well as the old "blockchain-NNNNNNNN.dat"
    77  * Tools/bdb - new command "-rendat" to rename old "blockchain-NNNNNNNN.dat" to new "blNNNNNNNN.dat"
    78  * Client: Added parallel updating of UTXO database by splitting it into 256 smaller hash-maps
    79  * Wallet: Default change address (if not specified) does not convert to P2KH anymore
    80  
    81  1.9.9 - 2021-05-21
    82   * Client: Do not drop Authorized peers
    83   * Client: Default value for config's "TXPool.MaxSizeMB" changed from 100 to 300
    84   * Lib: Chain.GetRawTx() does not return segwit-stripped data anymore
    85   * Wallet: fixed problem with "Transaction ID mismatch" error for segwit-stripped txs (now should work with either)
    86   * Wallet: decoding a transaction also displays its fee's SPB (when possible)
    87   * Client/WebUI: The fees chart for an already mined block shows a tooltip when hovered
    88   * Client: Unbanning an IP also removes it from "network.RecentlyDisconencted"
    89   * Client: Unbanning all peers empties "network.RecentlyDisconencted"
    90   * Client/WebUI/Network: New UI button "Unban" to unban one or all the peers
    91   * Client/TextUI: New command "peeradd" for manually adding peers to the database
    92   * Client/TextUI: "net" does not show last recv/sent command (the lines were too long)
    93   * Client/WebUI/Miners: Versions tables only show a summary of single occurences of uniqe values
    94   * Client: network.DropPeer() does not automatically ban the peer if its IsSpecial is set
    95   * Client/WebUI/Miners: Shows how many unique version values were mined by each miner
    96   * Client/WebUI/Miners: Clicking on a miner's row shows which blocks were mined by it
    97   * Client: Added protection for a possible lock-up inside network's TickRecv() and TickSent()
    98   * Package "github.com/tyler-smith/go-bip39" placed in "lib/others/bip39" (with modifications)
    99   * New tool "bip39wal" - Mnemonic Code Converter with BIP32 Derivation Path (https://iancoleman.io/bip39/)
   100   * Client: Improved way of parsing friends.txt file. Base58 encoded AuthKey must now start with extra @ character
   101   * Removed BIP91 blocks version field enforcement, as it seems to be obsolete at this moment
   102   * Wallet: Added support for BIP39 seeded wallets, for importing Gocoin wallet into other wallets (-bip39 and -words switch)
   103   * Wallet: Removed support for wallets type 1 and 2 (1 was already deprecated and 2 is not as good as 4)
   104   * Lib,Wallet: added support for ypub/yprv/zpub/zprv types of HD Wallets
   105   * Wallet: Added new command line switch -xprv, to print wallet's master key
   106   * Wallet: Added new wallet's config value "hdpath", for flexible compatibility with external wallets (use with "type=4")
   107   * Lib/Others/Utils: Added support for blockstream.info/api and made it the default
   108   * Client: When undoing a block (during re-org) all txs from it are placed in the mempool (fix for issue #58)
   109   * Lib/secp256k1: Added support BIP340 - new function SchnorrVerify()
   110   * Lib/Others/cgo/sipasec: Added Schnorr_Verify() - note: build lib with "./configure --enable-module-schnorrsig --enable-experimental"
   111   * Lib: btc.GetSigOpCount() now aborts counting on OP_RETURN (was wrongly rejecting testnet block #1971687)
   112   * Wallet: New command line switch "-cfg <fname>" to overwrite env's GOCOIN_WALLET_CONFIG variable
   113   * Wallet: No longer neccessary to add "-segwit" command line switch for "-bech32" to work
   114   * Client: New command line switch "-cfg <fname>" to specify config's file name other than "gocoin.conf"
   115  
   116  1.9.8 - 2020-07-09
   117  * New tools "utxo_compress" and "utxo_decompress" to compress/decompress UTXO.db file
   118  * Client: works with either compressed or uncompressed UTXO records, depending on the format of UTXO.db file
   119  * lib/utxo: added functions for dealing with compressed UTXO records, in new file unspent_recc.go
   120  * lib: removed btc.ReadAll() and using io.ReadFull() instead
   121  * lib/btc: added CompressAmount() and DecompressAmount() as used by Core's new "dumptxoutset" API
   122  * lib/script: added CompressScript() and DecompressScript() as used by Core's new "dumptxoutset" API
   123  * Client: new config value "Net.BindToIF"
   124  * Client / lib: Fixed a bug that was stopping multi-CPU platforms from paralell processing of the blocks
   125  * lib/secp256k1: Improved perfomance (for 64-bits platforms) with the new 5x52 mode
   126  * Client: fixed issue #47 - panic in network.LimitRejectedSize()
   127  * Client: do not call network.LimitRejectedSize() at every rejected tx, as it can cause performance problems
   128  * Fixed performance problem of slow mempool sorting with CPFP algo (packages are now built from parents, not children)
   129  
   130  1.9.7 - 2020-03-23
   131  * Client: does not allow to enable wallet functionality while blockchain sync in progress
   132  * Client: applying blocks stored on disk to UTXO-db is a non-blocking process now (UI works)
   133  * Wallet: fixed problem with "Transaction is corrupt" error for segwit txs
   134  
   135  1.9.6 - 2019-10-11:
   136  * Client: New config value "Memory.PurgeUnspendableUTXO" - automatically purge unspendable records from UTXO.db
   137    Note: execute TextUI commad "purge" to purge older unspendale records.
   138  * Client: "auth" messages carry last valid block data and the receiving peer can act upon it accordingly
   139  * Client/WebUI: some fixes around trying to show blocks fee stats while no such stats are stored
   140  * Tools/balio: fix for including spent otputs in the results from api.blockchair.com
   141  * Client: fixed problem with a high CPU usage in case of no network connection
   142  * Client/WebUI: do not reload Wallet page on new blocks as it was breaking the beeps
   143  * Client: Do not disconnect from friend peers when they fail to return block data
   144  * Client: Do not executy connection's GetBlockData() if the previous one has not finished (or timed out) yet
   145  * Tools/FetchTx: Suports fetching SegWit txs via blockchair.com
   146  * WebUI/Wallet: added "Copy to clipboard" action icons next addresses
   147  * WebUI will show some erros now, if the page template files cannot be loaded (instead of a blank page)
   148  * Tools/balio: Retry HTTP request if blockcypher.com server returns status code 429
   149  * WebUI/Transactions: Clicking on peer's IP copies it into clipboard
   150  * lib/utxo: use bufio.Writer for saving UTXO.db to disk
   151  * Client/TextUI: New command "rd" to show recently disconnected peers
   152  * Client: Hammering protection only kicks in after repeated re-connecting
   153  * Client/TextUI: "saveutxo" command triggers slow saving now (not a rapid one)
   154  * Client: Imporved resource usage when saving UTXO.db to disk
   155  * Client: New config value "Memory.OldDataBackup" - move .dat files to "oldat/" instead of deleting
   156  * Tools/balio: Fixed compatibility with recent API of blockchair.com
   157  * "Memory.UseGoHeap" config value brought back
   158  * peersdb.NewAddrFromString() resolves host names now, which has system-wise applications
   159  * Source code from "modernc.org/memory" placed in "lib/others/memory" and used for UTXO records (with minor changes)
   160  * Source code from "github.com/dchest/siphash" placed in "lib/others/siphash"
   161  * Source code from "github.com/golang/snappy" placed in "lib/others/snappy"
   162  * Source code from "golang.org/x/crypto/ripemd160" placed in "lib/others/ripemd160"
   163  
   164  1.9.5 - 2018-12-31
   165  * Client: By default native go heap is used for UTXO records. Memory.UseGoHeap config param removed.
   166  * Client: By default support for cross-checking consensus rules against core's consensus lib is disabled.
   167  * Tools/bdb - shows which blocks are actually stored on disk (for purged blocks db)
   168  * Client: Reject "getheaders" and "getblocks" with more than 101 locators. Allow those without hash_stop
   169  * Client: Added default Last Trusted Block hash also for testnet3
   170  * Client: Allow non-zero tx counts inside "headers" message, for compatibility with the core client
   171  * Client: Do not panic upon receiving "blocktxn" for a block that had been removed from BlocksToGet
   172  * Client/WebUI: Cosmetic chanages in the layout
   173  * Client: Fixed performance issue with mempool's transaction.GetAllParents() method
   174  * Client/WebUI: Import/Export WebUI settings moved from Wallet to Home page
   175  * lib/others/peersdb: updated list of DNS seeds
   176  * Client: Split incoming "getdata" into chunks, to prevent send buffer from overflowing
   177  * Client: Improved way of discovering "getheaders" and "getdata" timeouts
   178  * Client: Improved way of handling chain splits with only one branch valid
   179  * Lib: new script verification flag "VER_CONST_SCRIPTCODE", for compatibility with recent changes in bitcoin core
   180  * Client: Do not ban blocks only nodes, but only those that try to use bloom filtering
   181  * Client: Do not send "sendcmpct" messages if memory pool is disabled
   182  * Client: Fixed a DoS attack vector through a corrupt "version" message (possibly also "cmpctblock" and "inv")
   183  * Client: New config value "CFG.Net.ExternalIP" - force external IP (only v4) to be reported in "version" messages
   184  * Client: Do not try to save UTXO.db when chain is not synchronized, unless network has been idle for 10 minutes
   185  * Client: Improved the algorithm of setting "common.BlockChainSynchronized"
   186  * Wallet: "-l -ltc -segwit" will now give addresses starting from M, not from 3 (see issue #41)
   187  * Client/WebUI: Suport for TLS connections with forced client-side authentication (https://hostname:4433/)
   188  * Client: Removed automatic conversion of old format unspent4 to the new UTXO.db
   189  * Client: If pong comes out but a block is still pending, timeout it and dont ask this peer for blocks again.
   190  * Client: "CFG.UTXOSaveSec" replaced with "CFG.UTXOSave.SecondsToTake" and "CFG.UTXOSave.BlocksToHold"
   191  * Tools/balio: added support for fetching bech32 encoded addresses (via blockchair.com)
   192  
   193  1.9.4 - 2018-04-11
   194  NOTE: Use older wallet version (e.g. 1.9.3) if you had wallet type 2 or 4 already generated, but have problems spending from it now.
   195  
   196  * Added support for native segwit addresses (P2WPKH and P2WSH)
   197  * Client: Removed extra code added to investigate "the main loop got stuck in network.Tick()" problem (seems to be fixed now)
   198  * Client: Fixed problem with calculating insanely high average fee (seen on testnet @ block 1256442)
   199  * Client: When fetching balance, download missing txs from www also for testnet
   200  * "lib/ltc" package moved to "lib/others/ltc"
   201  * Tools/Balio: Suports LTC and Testnet again
   202  * WebUI: Changed the string to look for inside the wallet from "Auto-translate to SegWit" to "SegWit" or "SegWit P2SH"
   203  * WebUI/Transactions: auto refresh "Own TXs" after bloadcasting a tx
   204  * WebUI/Transactions: Show accumulated VSize() on X-axis (insted of accumulated raw size of the txs)
   205  * Lib: fixed issue #32 (Broken private key padding)
   206  * Completely removed support for stealth addresses
   207  * Client: store length of wallet's balance maps (in "mapsize.gob") for time and memory optimization on next boot
   208  * Client: improved time of loading mempool from disk
   209  * Client: "friends.txt" file moved to the data directory
   210  * Client/WebUI/Transactions: Use transaction weights, instead of VSize
   211  * Client: mempool code spread across several files
   212  * Client: mempool improved algorithm for sorting mempool (e.g. added child-pays-for-parent)
   213  * Client/WebUI/Transactions: Use Quick (less bandwidth consuming) mode for "Memory Pool" charts
   214  * WebUI/Home: Show the fee chart when clicked on a block's dot
   215  * "lib/qdb" package moved to "lib/others/qdb"
   216  * Client/TextUI: New command "txmpload" to load new transactions from "mempool.dmp" file (created by "txmpsave")
   217  * Do not build block's OldData / NoWitnessData when not needed
   218  * client: new config value "Memory.CacheOnDisk" to store blocks on disk (instead of RAM) during initial chain sync
   219  * Support for automatic purging of old blocks from the disk - config via "Memory.MaxDataFileMB"  and "Memory.DataFilesKeep"
   220  * Tools/bdb - the tool can now work with the new blocks database format (e.g. can split "blockchain.dat" into smaller chunks)
   221  * Client: Do not sent "notfound" mesages, as core does not
   222  * Client: "cmpctblock" handler also takes data from TransactionsRejected
   223  * Client: Changes in mempool around how rejected transactions are expired and when their raw data is kept
   224  * Client: New commands: "getmp" and "auth" - used for fetching/serving entire mempool from/to a trusted gocoin node
   225  * Client: Assume blocks and txs received from authoried peers as trusted
   226  * Client: Wallet is being loaded in the background after the chain sync is finished
   227  * Client: New config value "LastTrustedBlock" used to speed up initial chain sync.
   228  * Lib/utxo: Largely improved speed of Unspent.UnspentGet()
   229  * Client: Improved the timing of aborting UTXO saving, resulting in faster processing of new blocks
   230  * Client: If BlockDB does not find a .dat file, it will try to look again for it in "oldat/" folder (make it a link to keep old blocks on different drive)
   231  * Client/WebUI/Network: Improved bandwidth usage chart
   232  * Client: New config value "TXRoute.MemInputs", enables routing of transactions which spend unconfirmed inputs
   233  * Client: When memory pool is enabled the node automatically sends "getmp" messages to authorized peers
   234  * Client: New config value "Memory.UseGoHeap", forces node to use native go heap for UTXO records
   235  
   236  1.9.3 - 2017-12-26
   237  * Client: Removed a rare deadlock that could happen in network.AddB2G() on Mutex_net.Lock()
   238  * Client: Fixed problem with returning the same command again by OneConnection.FetchMessage()
   239  * Wallet: New command line switch "-stdin" to get the seed password from stdin
   240  * Wallet: New command line switch "-txfn <filename>" to control the name of the output transaction file
   241  * Client: Check nonce inside each version messages and disconnect the peer if already had it
   242  * Client: Redone protection os accessing values in "common" package, to prevent data race
   243  * Lib: "chain.BlockTreeEnd" is now only accessible through multi-thread protected methods LastBlock() and SetLast()
   244  * Client: Added network.CompactBlocksMutex to prevent data race
   245  * Client/WebUI/MakeTx: For privacy, randomly modify the default SPB by up to +/- 10%
   246  * Client/WebUI/Network: Allows to edit "friends.txt" file
   247  * Client: Data is being written to peer TCP connections from a desigated threads
   248  * Client: And peer that you connect to manually, automatically gets marked as Special (no auto-dropping)
   249  * Client: Automatically connect to IPs from file "friends.txt" (inside the client/ folder)
   250  * Client/WebUI/MakeTx: Show P2SH-WPKH instead of P2KH, only if currently selected wallet contains "# Auto-translate to SegWit"
   251  * Client/WebUI/MakeTx: Address Book shows auto calculated P2SH-WPKH Addresses from currently selected wallet
   252  * Client: Show real endpoint's TCP port for incoming connections
   253  * Client: Run Tick() method for each peer not more often than each 100 ms
   254  * Client: Run SendInvs() method for each peer not more often each 10 ms
   255  * Client: Increased size of each peer's send buffer to 16MB (so it can handle 8MB blocks)
   256  * Client/TextUI: New command "unban"
   257  * Client: Removed NO_DATA timeout and added NoVersionMessage timeout
   258  * Client: Introduced a concept of "special" peers that get more debugging and never get dropped
   259  * Lib: The best chain is now decided on the amount of POW, not the height anymore
   260  * WebUI/Network: New option "Connect Peer", to connect to a peer with the given IP[:port]
   261  * Lib: CheckTransactions now returns descriptive errors (e.g. "bad-txns-vin-empty")
   262  * Client: Added 2x bigger block consensus change warning (segwit2x)
   263  * Client/WebUI/Net: New "Freeze stats" option and manual refresh buttons
   264  * Wallet: disallow uncompressed keys, for WPKH segwit address safety
   265  * Client: Ignore the value of MAX_GETDATA_FORWARD when there are no blocks in progress
   266  * MarshalText() method madded to "sys.SyncBool" and "sys.SyncInt" (fixes WebUI issue)
   267  * Got rid of btc.MAX_BLOCK_SIZE (replaced it with btc.MAX_BLOCK_WEIGHT)
   268  * Lib: New "utils.GetUnspent()" function to fetch a balance from "blockexplorer.com" or "blockchain.info"
   269  * Tools/BalIO: Remade to use blockexplorer.com since blockr.io isn't working any more
   270  * Client/WebUI/Blocks: Show fee statistics in relation to transactions' weight, not the size
   271  * Client: NetRouteInv() was only routing txs to peers which don't use "feefilter"
   272  * Wallet: decode transaction also shows WTxID now
   273  * Lib: calculates weight of blocks and checks it against "btc.MAX_BLOCK_WEIGHT"
   274  
   275  1.9.2 - 2017-09-30
   276  * Minor performance improvements in "lib/secp256k1"
   277  * Client: do nothing on "verack" messages
   278  * Fixes of some DATA RACE warnings (not really dangerous ones, but just to shut up the race detector)
   279  * Lib: protect cached hash fields with a mutex, within tx.WitnessSigHash()
   280  * Client: Do not talk to peers that send any commands before "version"
   281  * Client: Default value of "CFG.Net.MinSegwitCons" changed to 4
   282  * Client: Do not drop segwit peers when connected ot less then CFG.Net.MinSegwitCons
   283  * Client: When loading a local transaciton, remove it from Rejected first
   284  * Client: Never send "inv" messages with MSG_WITNESS_TX type
   285  * Client/WebUI/Txs: Allow sorting Txs by SegWit compression factor
   286  * Client: the handler to chain.TrustedTxChecker also checks match on tx's WTxID now.
   287  * Tools/bdb: new switch "-fixlen" to set up the uncompressed size of each block inside blockchain.new
   288  * Client: BlocksDB index file contains now also the uncompressed size of each block
   289  * Client/WebUI/Wallet: Export settings stores entire local storage
   290  * Client/WextUI: "balance" command lists mempool transaction related to the given address
   291  * Client/WebUI: POST to "balance.json?rawtx" returns the raw (originating) transaction for each output
   292  * Wallet: Fix: "-f" was substracting the fee from every output's value, not only the first one
   293  * Client: Changed/fixed the way how own txs are inserted into mempool (e.g. it wasn't updating SpentOutputs)
   294  * Client/WebUI/Wallet: Show unconfirmed transactions
   295  * Client/WebUI/MakeTx: pay_cmd inside will not apply changes to the balance folder
   296  * Client: changed the way freshly mined txs are removed from mempool so it also works for reorgs
   297  * Client/WebUI/Network: Make some extra information about the nodes switchable on/off
   298  * Client: Show number of records (txs) while loading UTXO.db
   299  * Client/WebUI/Blocks: Removed minimum fee from the block table. Moved to the fee stats chart, also added maximum
   300  * Client: show progess of loading/saving balance of P2KH/P2SH addresses
   301  * Client: removed "config.Beeps" and all the related beeping functionality
   302  * Client/WebUI/Blocks: transactions in the fee stats can be grouped now to smooth the graph
   303  * Client: fee stats fpor WebUI/Blocks are being saved now
   304  * Client/WebUI: "Limit range" checkbox added to SPB graphs
   305  * Client: Fixed problem with expiring mempool txs too soon because of overflowing ints
   306  * Client: Minimum fee per byte (for mempool and routing) is a floating point value now
   307  * Client: Send "feefilter" massage to all the peers whenever minimum fee per byte changes
   308  * Client: New config file parameter "TXPool.MaxSizeMB", to keep memory pool at a certain level
   309  * Client/TextUI: New "wallet" command allow to switch wallet functionality on and off without restarting
   310  
   311  
   312  1.9.1 - 2017-08-01
   313  * Client: Removed AnySendTimeout as it was causing problems with limited UL bandwidth
   314  * Client/WebUI: The font is set to Arial
   315  * Client/WebUI/Network: Show how long each connection has been active and removes lest sent/rcvd command
   316  * Client: Write new blocks and UTXO set to disk 2 seconds after the last successfull AcceptBlock()
   317  * Client/WebUI/Blocks: The block's fee chart appears as a popup now
   318  * Client/WebUI: Pressing ESC closes popups
   319  * Client/WebUI: Removed Segwit related statistics
   320  * Client/WebUI/Wallet: Show Segwit deposit addresses if segwit is active
   321  * Client: WebUI/Blocks shows new blocks' extended fee stats
   322  * Added support for BIP91 in chain.PreCheckBlock() as well as on WebUI (mining info)
   323  * LIb: fixed panic in chain.NewChainExt() when called with nil options (used by importblocks tool)
   324  * Client: When calculating initial average block size, assume MAX_BLOCK_SIZE for the purged ones
   325  * Client: changed configuration related data
   326  * Client: Changed rules of choosing the "slowest" peer to drop
   327  * Client/WebIO: shows New York Agreement support related info in "Block" and "Miners" tabs
   328  * Client: "SaveOnDisk" config option for "TXPool" and "AllBalances" (defaults to false)
   329  * Client: save mempool on exit and load in on startup
   330  * Client: on close save all balances to "balances.db" (for quicker start next time)
   331  * Client: adding of a new block to block's db is accounted inside the queue time statistics
   332  * Client: abort saving of UITXO.db before starting to precess a new block
   333  * Added some protection against nodes sending own IP instead of ours (bitcointalk.org/index.php?topic=1954151.0)
   334  * Node's TxsReceived stat only counts the last hour
   335  * "btc.Uint256IdxLen" and "utxo.UtxoIdxLen" set back to 8 bytes, to decrease memory usage
   336  * Client: fixed the way best external IP is selected
   337  * WebUI/Txs: Limit memory pool fees graph to first 10 MB
   338  * WebUI: Do not display wallet name(s) in each tab's header (privacy)
   339  * WebUI/Blocks: Dispaly either mining info or block processing info
   340  * client/wallet: Use hashmap (instead of list) for addresses with "CFG.AllBalances.UseMapCnt"+ unspent outputs
   341  * WebUI: Do not show Wallet and MakeTx tabs in NoWallet mode
   342  * WebUI/Wallet: Show QR code when clicking on the address
   343  
   344  1.9.0 - 2017-05-05
   345  * Got rid of "qdb" for UTXO.
   346  * New package "lib/utxo" extracted from "lib/chain"
   347  * Announce a new block to peers before its fully verified (like Core 0.14.0 / net protocol 70015)
   348  * bdb: -purgeto <block_height> to purge all blocks up to given height
   349  * client: does not offer to import core's blocks-db anymore
   350  * Optimized the way new blocks are written to disk (verification should be faster now)
   351  * Client: New TextUI command "purge", to purge unspendable records from UTXO-db
   352  * New tool "fetchblock" and new functions in "lib/others/utils" for fetching raw blocks from the web
   353  * UTXO index has now configurable length (via "lib/utxo/UtxoIdxLen"), to address possible collision attacks (now set to 16 bytes)
   354  * Block index increased to 16 bytes, to address possible collision attacks
   355  * Client: Fixed "ConnectOnly" mode
   356  * WebUI: Show MinValue for accounted outputs on "Wallet" and "MakeTx" tabs
   357  * Client: New config value FreeAtStart, to free all possible memory after initial loading of block chain
   358  * WebUI/Wallet: Fixed problem with switching to different wallet while balance for previous none is still being fetched
   359  * Client: the balance of all the addresses is fetched after the blockchain finishes loading. It saves memory and speeds up potential rescans
   360  
   361  1.8.1
   362  * Client: each call to common.BlockChain.DeleteBranch() also does DelB2G() recursively
   363  * WebUI: Added (switchable) sound notifications when a new block is mined
   364  * Client: Support for new config value "WebUI.ServerMode" - many users to share the same node
   365  * WebUI/Miners: Redone
   366  * WebUI: When a block with a wallet's unspent tx is purged from blockchain.dat, the raw tx gets fetched from the web
   367  * WebUI/Wallet: Fixed error "Form submission canceled because the form is not connected"
   368  * Client: enable it to work with purged blockchain.new/blockchain.dat
   369  * bdb: -purgeall to purge all the blocks from blockchain.new (delete blockchain.dat manually)
   370  * Client: added some BU-singnalling related stats
   371  
   372  1.8.0 - 2017-02-06
   373  * Segregated Witness related functionality and many other changes here and there
   374  * Client: drop_worst_peer - do not drop peers that send new transactions
   375  * Client: Requires new consensus lib (from bitcon-core 0.13.1)
   376  * Client: Added "-trust" switch, with which client should be as fast as downloader
   377  * Downloader: replaced by "client -trust" and removed from the source base
   378  * The concept of "dust" outputs has been removed. Only the fees are important.
   379  
   380  1.7.4
   381  * Lib: Fixed rejecting of too big blocks
   382  * Client: Added TX_REJECTED_RBF_100 to the rejection reasons
   383  * WebUI/Blocks: Show lowest fee's SPB in the recently processed blocks
   384  
   385  1.7.3 - 2016-10-18
   386  * Client: Properly handle new blocks comming from Cornell-Falcon-Network
   387  * Client: Fixed excessive memory usage when synchronizing large amount of blocks
   388  * Client: Added mutex locks around reading of conn's GetBlockInProgress map
   389  * Client: Added OneConnection.Maintanence() method, to be called every minute
   390  * Client: Peer's BlocksReceived are now expired after 48 hours.
   391  * Client: Parameters for droping slowest peers are now configurable via gocoin.conf
   392  
   393  1.7.2 - 2016-09-27
   394  * Client: drop_slowest_peer changed to drop_worst_peer - do not drop peers that send new blocks
   395  * WebUI: "Blocks" tab shows some new statistics
   396  * Client: Keep per-peer list of the last 500 invs, to avoid duplicate sending
   397  * "Version" moved from "github.com/piotrnar/gocoin/lib" to "github.com/piotrnar/gocoin"
   398  * Leave external dependencies (siphash, snappy, ripemd160) to be dealt with by "go get"
   399  * Client: support for BIP-152 - "Compact Block Relay"
   400  
   401  1.7.1 - 2016-08-22
   402  * Client: WebUI/MakeTX - display raw transaction after clicking no the ID.
   403  * Client: "common.CFG.AllBalances.MinValue" is only applied during init now (change it restart to apply)
   404  * Downloader: fix loosing the content of *btc.Block structure between PreCheckBlock() and PostCheckBlock()
   405  * Client: shows text messages attached to transactions (the first push after OP_RETURN)
   406  * Downloader: fix for getting stuck at fetching headers if the top would happen to be orphaned
   407  * Client: WebUI - "balance.json" support "summary" (to not include list of unspent outputs)
   408  * Client: WebUI/MakeTX - fixed sorting of outputs by block height
   409  * Client: records in balance/unsepnt.txt (inside balance.zip) are sorted by block height
   410  * Client: New TextUI command "unspent"
   411  * Client: P2SH and P2KH balance indexes are kept in separate maps
   412  * Client: support for BIP 133 ("feefilter" messages)
   413  * Client: responds at most once to a getaddr request during the lifetime of a connection
   414  * Client: expire peer's GetBlockInProgress after one hour
   415  * WebUI: new buttons "Move left" & "Move right" in "Wallet" tab, for sorting order of the wallets
   416  
   417  1.7.0 - 2016-07-24
   418  * AllBalances mode - enabled by config value AllBalances
   419  * WebUI: Import / export wallets form/to a JSON file
   420  * Switched off support for stealth addresses
   421  * Client: do not try to commit a block until all off its parents are done - added HasAllParents() method
   422  * Client: CommitBlock() returns error, discard all the blocks that depend on it - added network.DiscardedBlocks
   423  * Wallet: "-p2sh <hex>" command can be used with "-input <int>" to alter only a single input of the transaction
   424  * WebUI: Option to show averaged value of the blocks' sizes, tx counts, SPBs
   425  
   426  1.6.4 - 2016-06-27
   427  * Use trully volatile, quickly switachable wallets from WebUI (requires 1.5GB more RAM)
   428  * Changed the first parameter to NotifyTxDel() to be more descriptive (than just TxID)
   429  * Do not use VER_LOW_S for now (to verify mempool txs) as it is baning some peers
   430  * Enforce CVS verification for blocks height 417312 or higher (not for testnet)
   431  * Implemented BIP113 (Median time-past as endpoint for lock-time calculations)
   432  * New TextUI command "bip9" - extracts BIP9 relevant info from the current chain
   433  
   434  1.6.3 - 2016-05-28
   435  * Lib: Inteface to TheBlueMatt's block_validator tests - see https://github.com/piotrnar/btc_block_validator
   436  * WebUI/Miners: Removed BIP100 voting stats
   437  * WebUI/Miners: Block version numbers are shown in a table, from a span of the consensus window
   438  * Wallet: use sequence value of 0 for RBF type transactions (instead of unix timestamp as before)
   439  * WebUI/MakeTx: Default sequence value changed to 0 and added "Final" checkbox
   440  * WebUI/Transactions: Shows processing time of the txs and which are RBF enabled (non-final)
   441  * Client: Implemented Replace-By-Fee for the memory pool
   442  * Removed support for "alert" messages
   443  * Tools/fetchtx: updated to the latest block explorers API
   444  * Lib/script: added support for OP_CHECKSEQUENCEVERIFY opcode (enabled by VER_CSV flag) - BIP-112
   445  * Lib/script: added support for all core's verification flags and updated the test suite to the latest one
   446  * New tool "verify_tx.go", usefull for debugging scripts
   447  
   448  1.6.2 - 2016-04-12
   449  * Client: fixed crash on calling the consensus lib with empty pkscript
   450  * Lib: Several compatibility fixes in the consensus checks on the block level
   451  * Client: getheadres uses genesis block if no locator has been found
   452  * Qdb: Memory bindings for Windows and Linux are being used automatically
   453  * Client: each input's script is checked in a parallell for accepting tx to mempool
   454  * Lib: simplified the way tx's inputs are checked in parallell goroutines
   455  
   456  1.6.1 - 2016-04-06
   457  * Client: network queue for txs processing increased to 2000
   458  * Client: WebUI/Transactions - The fees chart shows age of a transaction (on hovering)
   459  * Downloader: excessive memory consumption shall no longer be an issue
   460  * Client: some changes in how the core's consensus lib is called, as it had been giving false positives
   461  
   462  1.6.0 - 2016-03-30
   463  * Client: added option to use bitcoin's consensus lib for ensuring that scripts are processed properly
   464  * Qdb: Writing the entire database content (e.g. during defrag) is much faster now
   465  * Client: peer's send buffer made as a static circular buffer (with max size of 4MB)
   466  * Client: improved bandwidth statistics
   467  * New tool "bdb", for managing and deframenting the blocks database
   468  * Lib: check each new block for MAX_BLOCK_SIGOPS
   469  * Lib: check for merkle tree malleability (CVE-2012-2459) when accepting block
   470  * Client: RPC API for mining (supports "getblocktemplate", "validateaddress" and "submitblock")
   471  * Lib: fixed a critical issue of accepting a block hash which does not match the bits field from teh header
   472  * Lib: fixed issue with recalculating difficulty each 2016 blocks that was appearing on testnet3
   473  * Lib: script.VerifyTxScript() counts number of sigops when called with COUNT_SIGOPS flag
   474  * Updated snappy package to the latest version from https://github.com/golang/snappy
   475  
   476  1.5.0 - 2016-03-16
   477  * Client: Fixed maximul allowed message size for "getheaders" that was causing issues on testnet
   478  * Client: Do not allow into the mempool transactions spending inmature coinbase inputs
   479  * WebUI: Allows to specify the sequence number for Replace By Fee feature
   480  * Wallet: By default tx's sequence numbers are same as currrent unix time. Can be overwritten with "-seq <val>"
   481  * Client: Additional mining statistics
   482  * Client: support for Web Wallets (volatile wallets provided by the browser, not kept on the server)
   483  * Client: Implemented BIP 130 - Direct headers announcement
   484  * Qdb: added "volatile mode" in which records are being written to disk only when closing the database
   485  * Client: "client -r" rebuilds UTXO database in a volatile mode (should be much faster) and exits
   486  * Headers-first blockchain sync
   487  * ripemd160 and snappy libs has been included in the sources (GitHub repo)
   488  
   489  1.4.1
   490  * WebUI: More of teal time UI refresh (without reloading the pages)
   491  * secp256k1: Fixed issue #15 - BaseMultiply returning wrong result for certain input values
   492  
   493  1.4.0 - 2015-11-09
   494  * peersdb: MinPeersInDB changed from 256 to 512
   495  * Client: Added BIP100 stats to the mining UI
   496  * Wallet: Added support for Type-4 wallet, which is based on BIP-32 keys derivation (HD wallets)
   497  * Lib: Some changes to btc.WalletHD API
   498  * WebUI: Real time UI refresh (without reloading the pages)
   499  * Client/WebUI: Fixed double bug that occurred when switching "Listening for incoming TCP connections" on/off
   500  * secp256k1: Force Low S values in ECDSA Sign function
   501  * OP_CHECKLOCKTIMEVERIFY - BIP65 integreated into blocks version 4
   502  
   503  1.2.0 - 2015-07-31
   504  * Lib: enforce blocks version 3, starting from #364000
   505  * WebUI: LoadTx shows only own transactions
   506  * WebUI: Fixed transaction upload form at the Home tab
   507  * WebUI: Transactions tab has an option to only show "own" transactions
   508  * WebUI: Miners tab shows fee statistics
   509  * Fix: peers DB getting empty after disconnecting the network (keep at least 256 records)
   510  * Fix: BlockChain.BlockIndexAccess wasn't being unlocked when a panic from FindPathTo() was handled
   511  * Lib: reject old version blocks based on the super-majority principles
   512  * Lib: implemented BIT-0066
   513  
   514  1.1.0 - 2015-06-12
   515  * Client: configuring "Walletdir" to allow improved privacy of the wallets
   516  * Downloader: look for "Datadir" in "gocoin.conf" or "../client/gocoin.conf"
   517  * Client: the Blocks page of WebUI shows version of the recent blocks
   518  * Fix for issue #12 (Snappy URL changed)
   519  
   520  1.0.3 - 2015-03-27
   521  * Fix: GetHeaders for orphaned block does not cause panic anymore
   522  * Fix: Github issue #11 (panic when first time run client)
   523  
   524  1.0.2 - 2015-01-02
   525  * Fix: GetHeaders for unknown block does not cause panic anymore
   526  * Fix: Index out of range in "client/usif/webui/wallets.go" seen when quickly switching wallets
   527  * Baning of incoming peers ignores the remote port number (only checks IP)
   528  * WebUI: show last block number in the top level menu
   529  
   530  1.0.1 - 2014-10-19
   531  * Parallel processing switched back on (was accidentally disabled in "lib/others/sys/const.go")
   532  
   533  1.0.0 - 2014-08-07
   534  * Updated script/transaction test cases with the most recent files from bitcoin core
   535  * Mining pool tags are now in miners.json - can be changed without restarting the node
   536  * Allows to edit label of a wallet's address directly from WebUI
   537  * Allows to select a hidden wallet at the Wallet tab of WebUI (so you can edit it)
   538  
   539  1.0.0rc8 - 2014-06-19
   540  * Wallet: shows hashed value of stealth prefixes (in decoded tx)
   541  * Client: unspent4 - new format of UTXO database (lower memory and disk usage)
   542  * Lib: add to UTXO records info about it coming from a coinbase
   543  * Lib: bct.WriteVlen trakes 64-bit value now (previously 32)
   544  * Downloader: further optimized, pings mode removed
   545  
   546  1.0.0rc7 - 2014-06-11
   547  * Wallet: more reorganizing and cleaning
   548  * Wallet: removed "-hashes" option (added in 0.9.2)
   549  * Reject blocks version < 2 of main chain's height >= 200000
   550  * Check the block height from coinbase to match expected height value (for blocks version >=2)
   551  * Check transactions for consistency and finality in parallel
   552  * PeersDB extrancted from "client/network" to "lib/others/peersdb"
   553  * Downloader: the seed node is optional now
   554  * Client: print the size of blocks which are being orphaned
   555  
   556  1.0.0rc6 - 2014-05-28
   557  * Wallet: "-raw" command can now sign also multisig inputs (if they already have the script)
   558  * Stealth addresses: fixed the ephemkey's 03 issue (makes it incompatible with current DW)
   559  * Wallet: lots of reorganizing, cleaing and some basic tests added
   560  
   561  1.0.0rc5 - 2014-05-26
   562  * btcversig tool: added Litecoin support (specify LTC address or add "-ltc" switch for testnet)
   563  * lib/btc: BtcAddr.OutScript() handles version 48 (Litecoin's P2KH) & panics if cannot output right script
   564  * WebUI: shows page generation time
   565  * WebUI: fixed non-existing page tails
   566  * Wallet: added litcoin mode ("-ltc" switch)
   567  * New tool: "balio". Like "fetchbal", but also works with Testnet and Litecoin. Uses only "http://blockr.io/"
   568  
   569  1.0.0rc4 - 2014-05-22
   570  * secp256k1 uses precomputed constants instead of calculating them during initialization (wallet starts faster)
   571  * Source files and packeges moved around like hell. Don't even ask, but it was a change for good.
   572  * Btc: added API functions for HDWallets (see "wallethd.go")
   573  * Wallet: you can add "seed" param to the config file, as a potential countermeasure against keyboard loggers
   574  * Client: new TextUI commands ("arm", "unarm", "armed") help to secure your stealth addresses' scan-keys
   575  * Client: the balance of all the wallets gets pre-cached while opening UTXO database
   576  * Client: configuring "Memory.NoCacheBefore" can now lower mem usage with no much visible performance drop
   577  * Client: "NoCacheBefore" can have a negative value, that will define an offset from the highest known block
   578  * Client: More help topics in WebUI
   579  * Further refactor of the code
   580  
   581  0.9.14 - 2014-05-13 (1.0.0-rc2)
   582  * Qdb: Uses malloc() and free() from libc, to optimize usage of system memory (skips garbage collector)
   583  * Client: improved statistics page of WebUI and renamed from Stats to Counters
   584  * Client: added new command "age" to TextUI
   585  
   586  0.9.13 - 2014-05-10 (1.0.0-rc1)
   587  * Huge refactor of the entire repo
   588  * Support for stealth addresses
   589  * Wallet: support for "-p" switch that forces asking for seed password
   590  * Wallet: support for "-f" swicth, to exclude fee from the fist output's value
   591  * Wallet: many other changes
   592  
   593  0.9.10 (intermediate checkpoint tag)
   594  * Client: an address listed more than once in a wallet gets removed (was showing wrong balance)
   595  * Wallet: can generate a stealth address. Use "-scankey <key>". Uses the first private key for spend.
   596  
   597  0.9.9 - 2014-04-30 *LAST_STABLE*
   598  * Wallet: if you specify "-msg <text>" parameter it adds a null output with the text to the tx
   599  * Client: fixed a crash when loading a transaction with an output that has no standard address
   600  * Client: proper removing (from the memory pool) transactions altered by the malleability
   601  * Client: Relevant records are removed from SpentOutputs when expiring txs from mempool (memleak fix)
   602  * Client: Do not save connected (alive) peer's record into DB more often than once per minute
   603  * goc - a new tool to control the node from a remote console, using a WebUI interface
   604  * peers - a new tool to display content of the peers database
   605  * base58 - a new tool to encode/decode base58 strings
   606  * Added "restore leading zeros" to btc.Decodeb58(), to reflect behaviour from the satoshi's code
   607  
   608  0.9.8 - 2014-04-22
   609  * Added locally served "Help" page to WebUI
   610  * Some additional features on WebUI's "Home" page (e.g. network's hasharate)
   611  * The block database uses a different index file ("blockchain.new" instead of "blockchain.idx")
   612    The client will convert the old index into the new one, during the first start.
   613    Going back to a previous version (after conversion), rename blockchain_backup.idx to blockchain.idx
   614    If you don't plan to go back to a previous version anymore, delete blockchain_backup.idx
   615  * Added support for "getheaders" and "notfound" commands
   616  * Some code in the btc lib has been restructured (now ther are functions in place of fields)
   617  
   618  0.9.7 - 2014-04-13
   619  * Wallets tab of WebUI has an option to move an empty address to UNUSED wallet
   620  * A user can quickly switch wallet being at any tab of the WebUI, as well as to reload it
   621  * SendTx tab of WebUI refreshed Address Book using Ajax and addrs.xml
   622  * Fixes and additional test cases around parsing of alert messages
   623  * Added unit tests for "sighash.json" from the satoshi's repo and some more unit test rework
   624  * A link to the user manual (served at google sites) in the header of each WebUI page
   625  
   626  0.9.6 - 2014-04-02
   627  * Client has a hammering protection (bans peers that keep trying to reconnect)
   628  * Miners tab of WebUI does not show crap anymore is the chain isn't up do date.
   629  * MakeTx tab of WebUI calculates estimated transaction size after signed (assumes compressed keys)
   630  * Downloader can work with testnet and got a fix around an empty peers db after the headers stage
   631  * New function "tools/utils/fetchtx.go", to download raw tx data from other websites
   632  * If neccessary, FetchBal and FetchTx try several websites to fetch a raw transaction data
   633  
   634  0.9.5 - 2014-03-24
   635  * "MakeTx" tab of WebUI automatically recalculates the payment values to mBTC (for verification)
   636  * The downloader does not have a default seed node anymore (you need to find one by youself)
   637  * Do not block connections from 129.132.230.70-100 anymore
   638  * Some changes in wallet's decode transaction functionality to better deal with non stardard txs
   639  * "wallet -d <txfile.txt>" ignores spaces, tabs and EOLs in the hexdump of the transaction
   640  
   641  0.9.4 - 2014-03-20
   642  * The default "FeePerByte" changed from 10 to 1 (like they have done it in the reference client)
   643  * The "-d" option of the wallet can now proparly decode coinbase transactions
   644  * The client can work with multisig address description JSON files (place them in "wallet/multisig")
   645  * Having the files in "wallet/multisig", MakeTx tab of client's WebUI can now create "multi2sign.txt"
   646    ... for the wallet, even properly mixing inputs from different addresses and address types.
   647  * For multisig payments, "payment.zip" from the client contains "multi2sign.txt" and "multi_pay_cmd"
   648  * The wallet can now deal with mixed (multisig and regular) inputs
   649  
   650  0.9.3 - 2014-03-14
   651  * Fixed a critical bug in parsing OP_CHECKMULTISIG and OP_CHECKMULTISIGVERIFY
   652  * Wallet has a new option "-msign" that signs a multisig transaction with a single key
   653  * Wallet has a new option "-p2sh" to prepare a raw transaction for multisig processsing
   654  * Wallet can print public key of a given bitcoin address ("-pub <addr>")
   655  * Wallet can now properly send money to P2SH-type addresses
   656  * The new tool "mkmulti" that can be used for generating multisig addresses
   657  * Few improvements around handling P2SH-type scripts and addresses
   658  
   659  0.9.2 - 2014-03-06
   660  * Order of B_secret and A_public_key arguments swapped for "type2determ" tool
   661  * A new tool "type2next" to calculate a next type-2 deterministic public key/address
   662  * Wallet has a new option "-1" that used along with "-l" does not re-ask for password
   663  * Wallet can print hashes of each transaction's input to be signed ("-raw <txfile> -hashes")
   664  * Wallet can sign a raw hash ("-hash <hash>") with a given key ("-sign <pubadr>")
   665  * A new tool "txaddsig" for inserting signature + public key into a raw transaction
   666  * Show entire content of the current wallet in MakeTx tab, if the book would be empty
   667  
   668  0.9.1 - 2014-03-01
   669  * Little faster algos (by peterdettman) for field's sqrt() and inv() (in "btc/newec")
   670  * Fix: wallet is not able to properly "-sign" with imported (un)compressed addresses
   671  * Pre-caching of all the wallets' balances include commented out addresses
   672  * "Discus Fish" added to the mining pools
   673  
   674  0.9.0 - 2014-01-23
   675  * The "downloader" app which can download the entire blockchain in less than 2 hours
   676  * Major performance improvement of UTX reindexing (rebuilding) functionality
   677  * Bugfix: the blance cache could cause panic when two outputs were being spent from the same address
   678  * Pre-cache all the addresses from all the wallet files at startup
   679  * Banned IP range 129.132.230.0/24 changed to 129.132.230.70 - 129.132.230.100
   680  * No TexUI mode for apps with no access to stdin (use "-textui=false" switch)
   681  
   682  * Added a special wallet "ADRESSES" that contains the address book (for MakeTx tab)
   683  * Support for "virgin" addresses in the wallet files (put space before the address).
   684    (virgin addresses are hidden the wallet tab as long as their balance is zero)
   685  
   686  0.8.6 - 2013-12-30
   687  * Added "Load TX" to the top menu in WebUI
   688  * Allow for hidden wallets (start filename with ".") and a nested sub-wallets (up to 3 levels deep)
   689  * Fix: after changing a label in a wallet file it get changed in the unspent list as well
   690  * Fix: the list of unspent outputs is now being sorted properly (by block height)
   691  * "wallet -d" prints number of (yet) unsigned inputs
   692  * "versigmsg" renamed to "btcversig" and some new features were added
   693  * Expire external IPs after one hour from last seen
   694  * Added new fields "Nonce", "TxCount", and "TxOffset" to "btc.Block" (set in "btc.NewBlock")
   695  
   696  0.8.5 - 2013-12-18
   697  * From now on every "payment.zip" contains also the unsigned raw transaction file ("tx2sign.txt")
   698  * Added a cache for address balances to speed up switching between wallets
   699  * Building the wallet for Windows does not require mingw anymore (now it uses msvcrt.dll for _getch)
   700  
   701  0.8.4 - 2013-12-14
   702  * Support for JoinCoin sort of transaction in the wallet
   703  * We do not add mined txs to TransactionsRejected map (or at least try to)
   704  * WebUI cosmetic here and there...
   705  * Transaction and EC signing parts moved from the wallet app to the btc package
   706  * Added "-raw <filename>" and "-d <filename>" command to the wallet (to sign, decode transaction file)
   707  * Fixed decoding of P2SH-type addresses in btc.NewAddrFromPkScript()
   708  * Added support for relay=0 received from peers (do not send tx invs to them)
   709  
   710  0.8.3 - 2013-11-28
   711  * Support for GOCOIN_WALLET_CONFIG env variable (enforces the wallet's config file)
   712  * Added CFG.PayCommandName so you could e.g. make it .bat or .sh (the default is "pay_cmd.txt")
   713  * The home tab shows time next to each unspent outputs
   714  * Cosmetic here and there...
   715  
   716  0.8.2 - 2013-11-10
   717  * "fetchbal" can work via tor now (set env variable TOR=localhost:9150)
   718  * Any own tx can now be sent to only a single random peer (privacy feature)
   719  * You can include another wallet inside a text wallet file (use "@filename")
   720  
   721  0.8.1 - 2013-11-06
   722  * "fetchbalance" renamed "fetchbal" and now it works with coinbase txs properly
   723  * New tool fetchtx to downlaod raw tx from blockexplorer.com
   724  * Block subnet 129.132.230.0/24 (fixed for now)
   725  * Allow to setup User-Agent reported by the version messsage (a privacy feature)
   726  * Some minor changes in fetchbalance
   727  * Disconnect & Ban peers that have not sent a single inv to us for 15 min since connecting
   728  
   729  0.8.0 - 2013-10-26
   730  * Souce code of the client hugely restructured
   731  * A new tool "fetchbalance" that can fetch the ballance from blockchain.info & blockexplorer.com
   732  
   733  0.7.8 - 2013-10-12
   734  * Password chars are hidden when being input (if wallet does not build, delete "wallet/hidepass.go").
   735  * "MakeTx" tab is precise now converting between Satoshi and BTC values
   736  
   737  0.7.6 - 2013-09-29
   738  * "MakeTx" tab in WebUI (to pre-make the command for the wallet app)
   739  * Droppig a peer (from TextUI or WebUI) bans its IP by the way
   740  * Added "-useallinputs" switch to the wallet app
   741  * Added CFG.MiningStatHours so minig stats are not fixed to 24 hours anymore
   742  
   743  0.7.4 - 2013-09-20
   744  * A new port of sipa's secp256k1 lib, based on the 10x26 filed implemetnation (btc/newec)
   745  * The new btc/newec speedup enabled by default.
   746  * The old native speedup's source code removed.
   747  
   748  0.7.3 - 2013-09-19
   749  * A new (native Go) EC_Verify speedup, based on sipa's secp256k1 code (client/speedup/mygonat.go)
   750  * Cosmetic chanegs in WebUI
   751  * A new (DLL based) EC_Verify speedup for Windows (client/speedup/sipadll.go)
   752  
   753  0.7.1 - 2013-09-10
   754  * Wallet's random numbers (used for ECDSA_Sign) don't rely on security of "crypt/random" package
   755  
   756  0.7.0 - 2013-09-03
   757  * A major rewrite around shared memory access, in the network client
   758  * Added some protection against racing conditions
   759  * Do not switch off GC while verifying a block
   760  * Added UI command "defrag" that purges and recompresses the block database
   761  * Added snappy compression for the block database (its faster than gzip)
   762  
   763  0.6.6 - 2013-08-27
   764  * Added support for wallet.cfg to specify some default values
   765  * Wallet's "-t2" and "-t3" command line swiches replaced with "-type=X"
   766  * Labels returned in balance.xml are HTML escaped
   767  
   768  0.6.5 - 2013-08-25
   769  * Fixed a critical bug in script parsing (0x00 at top of the stack was not considered as "if true")
   770  * Fetch seed peers in a background and save peers DB to disk before quiting
   771  * Ctrl+C works now also during rescan and allows to continue later from where stopped.
   772  
   773  0.6.4 - 2013-08-15
   774  * Support for deterministic wallet Type-3 (keeps other keys safe, if one got compromised)
   775  * The wallet can export private key now, in the satoshi's base58 format (-dump switch)
   776  
   777  0.6.3 - 2013-08-09
   778  * Show balance of per address at the Wallets tab
   779  * Added support for WebUI switchable wallets
   780  * Improved script_test.go, so it works directly with satoshi's json files
   781  
   782  0.6.0 - 2013-07-27
   783  * Added support for verifying (rejecting) P2SH transactions
   784  * Added handling of OP_1ADD script opcopde and fixed some other opcodes
   785  * UI cmd "unspent" returns outputs sorted by block height
   786  
   787  0.5.8 - 2013-07-25
   788  * Added some more satoshi-script-evaluation compatiblity patches (and unit tests)
   789  * By default, don't download same block from more than 3 peers simultaneously (CFG.Net.MaxBlockAtOnce)
   790  * Fixed a critical blockchain parsing issue, with SIGHASH_SINGLE sigs (was rejecting valid blocks)
   791  
   792  0.5.5 - 2013-07-20
   793  * The wallet now supports Type-2 deterministic keys (use "-t2" switch)
   794  * Make the node's beeping setup configurable though gocoin.conf
   795  * Allow to decode (display) a transaction's details (only txs that are in memory pool)
   796  * Minor improvements in net module (i.e. shrink send buffer after each write)
   797  
   798  0.5.3 - 2013-07-11
   799  * XSS protection on WebUI and IP access control
   800  * Some new network security features
   801  * Like Satoshi client, do not process incoming messages having more than 1MB in send buffer
   802  * Some changes around qdb database (improved syncs for unspent db, added counters)
   803  
   804  0.5.2 - 2013-07-07
   805  * WebUI improvements
   806  * Yet more improved "qdb" is now a part of the repo
   807  
   808  0.5.0 - 2013-07-04
   809  * Requires new "qdb" ... much imporved statrup times.
   810  * Never keeps unwind records in memory (only on disk)
   811  * Allows to not keep old unspent outputs in mem. Modify "UTXOCacheBlks" in the config to switch it on.
   812  
   813  0.4.8 - 2013-07-02
   814  * Added new blocks' timing stats to the WebUI
   815  * New tool "importblocks" for importing blocks from Satoshi's DB
   816  * Improvements in tx memory pool
   817  * Big rework in the network module
   818  * Allow sorting of transaction tables in WebUI
   819  
   820  0.4.3 - 2013-06-27
   821  * Some more WebUI templates, and further extensions
   822  * Fixed a bug with checking new block height in block_check.go
   823  * Allows loading and broadcasting of local txs via WebUI
   824  * Allows to download the balance folder via WebUI
   825  * More WebUI templates
   826  
   827  0.4.1 - 2013-06-25
   828  * Do not route txs that have any output lower than a fee for 0.5KB
   829  * Added support for a config file
   830  * Fixed a bug introduced in 0.4.0 that was removing own txs from the pool
   831  * Templates for WebUI
   832  
   833  0.4.0 - 2013-06-24
   834  * Added tx routing (you can switch it off with "-txr=false")
   835  * Further WebUI extensions
   836  * A bunch of other code changes, that I don't remember now
   837  
   838  0.3.5 - 2013-06-23
   839  * Addded WebUI - by default on http://127.0.0.1:8833/
   840  * Improved framework for mining stats
   841  * Changed the way "getblocks" is requested, plus some other hard to describe net related changes
   842  
   843  0.3.4 - 2013-06-20
   844  * Arithmetic script opcodes check for the 4 bytes limit at input values
   845  * Better external IP address discovery and droping connections to self
   846  * Added a memory cache for blocks database (in btc/blockdb.go)
   847  * Added sipasec cgo for EC_Verify (over 5 times faster than openssl)
   848  
   849  0.2.15 - 2013-06-18
   850  * Support for gzip compressed blocks inside blockchain.dat
   851  * A tool to compress blockchain.dat (tools/compressdb.go)
   852  * Rejects blocks that would cause forks long ago in a past