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