Dd-12: V0.1.5 (06/07/16)

Discussion in 'Development Dispatches' started by tacotime, Jun 7, 2016.

  1. 2017/12/15 - Decred v1.1.2 released! → Release Notes  → Downloads
  1. tacotime

    tacotime Hero Member

    Dec 7, 2015

    This development dispatch covers work completed since the Decred v0.1.4 release from May 27th, 2016. Since then, developers have merged 58 pull requests of code into 6 software repositories. During this period, a total of 53 commits occurred in these repositories and represent modifications to the effect of 9,220 lines of code added to and 4,481 lines removed from the Decred codebase.

    Two additional stake pools have also come online to support the network (in alphabetical order):

    Binaries: https://github.com/decred/decred-release/releases/tag/v0.1.5

    • Synced a large number of fixes, improvements, and optimizations from upstream through November (223-26a3200, 229-08f7b6b), December (230-fe65e81, 231-77b2c53, 235-e433c18) 2015, and January (240-e190b7f, 243-1c4314e, 244-7d4646c, 246-0aeccc0, 253-6febb7b, 255-16a5842, 256-4e878a8), 2016
    • Introduced the concept of a new interface named TxSource which aims to generically provide a concurrent safe source of transactions to be considered for inclusion in a new block. This is a step towards decoupling the mining code from the internals of dcrd. Ultimately the intent is to create a separate mining package (225-9031d85)
    • Introduced a new mempool config in preparation of moving mempool to its own package (226-d73e576)
    • Created a skeleton mining package as a step towards decoupling mining code to ultimately house all of the code related to creating block templates and CPU mining (227-42550a5)
    • Added DisableRelayTx to config to set a value in the version message which informs the remote peer on whether to send inv messages for transactions (228-f0389a3)
    • Simplified PushAddrMsg to ensure that all addresses have an equal chance of being included in the addr message and moved the pseudorandom number generator seeding to package level so that it can be overridden for testing if required (232-c9c32d5)
    • Cleaned up wire code (233-c44f08b)
    • Improved test coverage (236-18e35fe)
    • Optimized the filter address handling code in the RPC server (237-d1d65c7)
    • Improved JSON RPC consistency (238-164f677)
    • Fixed ticketfeeinfo sorting (239-33bcf33)
    • Implemented a sendheaders command to request that a peer send header commands instead of inv commands when announcing new blocks (241-1cb038c)
    • Consolidated several public methods to make the creation of inbound and outbound peers more homogeneous (242-0d67c15)
    • Implemented banning based on dynamic scores. Dynamic ban scores consist of a persistent and a decaying component. The persistent score can be used to create simple additive banning policies. The decaying score enables the creation of evasive logic which handles misbehaving peers (especially application layer DoS attacks) gracefully by disconnecting and banning peers attempting various kinds of flooding. Dynamic ban scores allow these two approaches to be used in tandem (245-e3c5cd5)
    • Added a logger message containing the time it takes to process a block (247-e47d83c)
    • Modified the peer package to add support for the sendheaders protocol message (254-208eaba)
    • Prevented nodes from repeatedly requesting and rejecting the same transaction as different peers inv the same transaction (257-5125078)
    • Simplified block template exports (258-2ad0b1a)
    • Optimized map limiting in the block manager to improve efficiency (259-c21db7a)
    • Modified the chaincfg package to register the default network params via the init function instead of manually hard coding their data into the maps. This is less error prone when adding new default networks (260-d6ac2f0)
    • Consolidated tests into the chaincfg package (261-848d9fc)
    • Created mempoolPolicy to configure the mempool policy and decouple the values from the internals of dcrd to move closer to a mempool package (263-157d1cd)
    • Fixed an issue that often caused slow processing of calls through the block manager (265-eda86f5)
    • Created a new internal package for fast access to live tickets (roughly 14x faster access) (266-92635a4)
    • Added rescan and scanfrom options to importprivkey and importscript (267-63fc4e7)
    • Updated documentation (234-3117ae7, 248-2030b4d, 252-8a9956d, 262-9b3e7d7), formatting (249-d3ef588), naming (250-70f6de8), and versioning (268-b869593)
    Credits: @ay-p, @ceejep, @chappjc, @davecgh, @dhill, @Dirbaio, @kefkius, @Javed Khan, @jcv, @jolan, @jrick, jzbz, jongillham, mvdan, shphrd, tb00, wallclockbuilder

    • Removed unused functions (256-8eebdff)
    • Fixed an issue where transactions were previously removed in the forward order when rolling back a block, which may cause transaction faults if there are transaction chains. Instead, roll back in the reverse order (263-3e31373)
    • Added new optional resyncing options to importscript and importprivkey for convenience. A rescan height can be included as the last argument so that the user can easily rescan from a height that is not the genesis block (264-3942d8b)
    • Updated versioning (265-cc02f1b)
    Credits: @ay-p, @ceejep, @jcv, @jrick

    • Added gettickets to the wallet RPC client handlers (26-65f9d22)
    • Added rescan options for importprivkey and importscript (27-f3c620d)
    Credits: @ay-p, @ceejep, @jcv

    • Added AmountSorter used by the median function in ticketfeeinfo (12-4a3bdb1)
    Credits: @ay-p, @ceejep, @chappjc, @jcv

    • Set HTTP server to localhost only by default (3-cef1a81)
    • Fixed an issue where the fee from a difficulty window could incorrectly return as zero if the first window was the newest, incomplete window and there were not any new tickets in that window yet. This has been corrected by checking for the size of the first window, and also by skipping any zero fee windows (5-e30f1c5)
    • Added the ability to choose which price average to use. Before, the user could only use the average of the pool price and the VWAP price for the ticket average price if not specifying
      a price target. Now users can select the mode of their choosing using the avgpricemode flag, and also the number of blocks to use in the calculation of the VWAP (6-700ecd3)
    • Added a warning on startup if the wallet is not connected or unlocked (7-5cc29df)
    • Updated configuration and fixed an unlikely simnet panic (8-65641c4)
    Credits: @ay-p, @ceejep, @jcv

    • Rewrote the landing page, made it cleaner, smaller, and SEO friendly (4-1b17a2d)
    • Added a stake pool finder utility and caching infrastructure for the block height display (5-)
    • Added the latest stake pools to the finder utility (6-53c795a)
    Credits: @Fsig, @jcv, @jolan
    zero, MarSas, Reynold and 3 others like this.
  2. Tivra

    Tivra Member
    Advocate (BitcoinTalk)

    Dec 30, 2015
    Already a new release! So much quality work done. The Decred dev team never ceases to amaze with its efficiency. Kudos.
  3. joaoharter

    joaoharter New Member

    May 29, 2016
    I have the wallet version 0.14. Is mandatory the update?
  4. Reynold

    Reynold Member

    Jan 28, 2016
    Thank you for the update! :)

    Updated binaries and running good so far.
  5. Hazard

    Hazard New Member

    Jun 6, 2016
    Is it just me?

    I'm getting a panic: runtime error: invalid memory address or nil pointer dereference on linux-arm build.

    Version 0.1.4-beta runs fine...
  6. jcv

    jcv Full Member

  7. toad

    toad New Member

    Feb 9, 2016
    Will wait a bit then since i'am on Raspberry Pi (linux-arm)
  8. jcv

    jcv Full Member

    @toad If you don't mind compiling from source @ay-p just committed the fix earlier today (and I tested it on a raspberry pi.
  9. toad

    toad New Member

    Feb 9, 2016
    @jcv ok cool, will do that. Thx!
  10. Nimrod

    Nimrod New Member

    Mar 4, 2016
    This version crashed on two different 32-bit Win7 systems (Intel i5 and i7)

    Fresh install. Dcrd syncs to latest block OK and dies immediately after this with several pages of crap flying by to fast to read.
  11. jcv

    jcv Full Member

    @Nimrod have you tried the latest master? The raspberry pi/arm bug is technically a bug for 32 bit platforms but most of use don't have any 32 bit machines left other than arm boxes so we never really get to see it on 32 bit windows, mac, or linux.
  12. Nimrod

    Nimrod New Member

    Mar 4, 2016
    Nope. Downloaded the pre-compiled binaries today.

    OK. Good to know about few testers with 32-bit windows. I will be running at least one of these machines 24/7 for the next few years on 32-bit win 7 due to some legacy software.
  13. zero

    zero Full Member

    Jan 1, 2016
    Up and running. No problems occurred until now (Win 10 Pro x64).

Share This Page