@chappjc chappjc released this Dec 11, 2018 · 123 commits to master since this release

Assets 2


  1. This version of dcrdata requires a build of dcrd running JSON RPC server version 5.0.x, such as the current development version of dcrd v1.4.0.
  2. When upgrading from v3.0.x, the PostgreSQL database does NOT need to be rebuilt from scratch. However, if upgrading from v2.x.y, a complete DB rebuild is needed.

This is the release of dcrdata v3.1.0. Since the last published non-patch release (v3.0.0), the following changes were made:

  • Build with Go 1.11 modules, defining dcrdata as v3 module. (2f68351, 5f24e74, 789129d, 44406ef, 92ff8a2)

  • Support only Go v1.11. (70ed11e, 3beacda)

  • Major initial sync performance improvements. (d01def5, 636cfa5)

  • Add netparams package for access to network service port numbers.

  • New version scheme with "appPrerelease" and "appBuild" info to generate version strings like v3.1.0-release or v3.1.1-pre+dev. (cc0e85c) This matches the version scheme now in use by dcrd and dcrwallet. The build syntax for dcrdata is as follows:

    go build -ldflags "-X github.com/decred/dcrdata/v3/version.appPreRelease= -X github.com/decred/dcrdata/v3/version.appBuild=`git rev-parse --short HEAD`"
  • Bugs fixed on /agendas page (e54cfa1) and with agendadb (4b074b3)

  • Improvements to /address page charts, ensuring the group-by interval selected is the most meaningful for the current address. (d105024)

  • Add the ability to use environment variables for configuration. (f2903f1)

  • All votes, including side chain votes, are included on the mempool page. Votes on blocks other than the best block are highlighted in red. (93b5788)

  • Votes on the mempool page are given an index according to which ticket is spent. (8a2e2ad and b4ae964)

  • Basic Dockerfiles. (61a38fb)

  • Restore next expected ticket price and bounds, like we used to show it. (ba0f9ee)

  • Support the /sync Insight API endpoint. (aac0885)

  • Block page now handles "future" blocks with height not yet reached. (71c1d03)

  • Side chain support:

    • Queries and /side page (b159166, 706b8aa). /side is a list of side chain blocks with links to them, their parents, and their children, if any. The /block page is updated to indicate if the block is a side chain block, and if it is approved by stakeholders.
    • Shows on the transaction page a list of blocks containing that transaction. There should be only one block that is both mainchain and stake-validated. Any other blocks will be "Mainchain: false" or "Valid: false" or both. When a transaction is found in multiple blocks, list them all with unambiguous links by hash. Also pass the transaction index via ?ind= URL parameter so that we can use it on the block page to highlight the transaction. (091b91b, 412dd7e)
  • Retrieve and import side chain blocks from dcrd via the new getchaintips RPC. (254ecab, 7adf9bf, 235ddd8)

  • Stake-invalidated blocks page at /rejects (19953f6), and improved stake-invalidation handling. (0dfef89)

  • Invalidated transaction support. If a transaction is not known to dcrd, it is because it has been orphaned by a reorg, invalidated via stakeholder disapproval, or both. dcrd will now attempt to get transaction details from the dcrpg database, which may have decoded and recorded the transaction. A message is shown on the transaction page when the transaction is not found in any valid and mainchain block. (2cfeccd)

  • Special handling of genesis block coinbase transaction, which is invalid. (10fccfc) Show an attention symbol in red next to the tx hash. A title (hover text) is shown explaining why it is special. The link points to code (chaincfg/genesis.go).

  • Concurrency-related fixes in explorer package. (3ae6c99)

  • Style invalidated transactions on the block and transactions pages: gray out and change background color of regular transaction table data, including the coinbase, on a block's page. On the blocks list page, indicate invalidated blocks. (8d924bf)

  • Improved error handling on /address page. (700d3c5)

  • Address API no longer returns null for address with no transactions, but an object with an empty slice of transactions. (979872d)

  • Accelerate /ticketpool page. (974f78f, c216066)

  • Insight API fixes (34e508d, 36e060d)

  • Insight API docs (3db503d, 6580ff2)

  • Address page and query performance improvements. (3e42cd1, 08147c3)

  • Patch valid_mainchain column of addresses table. (078483d)

  • Fix the address page for addresses with only unconfirmed transactions. (38c51a1)

  • Input/output highlighting on the address and transaction pages. To support the highlighting, a new route for identifying the input or output of interest is added: /tx/{txid}/{in|out}/{idx}. The input/output that pairs with the corresponding outputs/inputs in a transaction's view are obtained via queries into the vins table. (60d033d)

  • Various sync and startup improvements and fixes. (08f1839, 97ed3bd, 769abd2, 59c6fbd)

  • dcrpg query maintenance/reorganization. (102df3e)

  • Add the ability to show transaction output spending information via ?spends=true on the following API endpoints: /api/tx, /api/tx/decoded, and /api/txs. (e96c9d6)

  • Prototyping new home page at /nexthome. (694eaee)

  • Add a syncing status page that starts up before dcrdata completes syncing with dcrd. (44c8a08, eab8e43)

  • Security improvements. (5e473a8, 28c3d69)

  • Adjust the config/log/data paths if appdata is set. (98b418b)

  • Show mining fees on /block page. (3a97e63)

  • Docs and sample config updates. (b97a023, f6d2f42, eec01ac, 28c3d69)

  • Add new page /ticketpricewindows that lists all of the historical ticket price windows. (e8cedde, 7461f90)

  • Replace the shared quit channel with a context.Context from the "context" standard library. (71812de)

  • Show Tx Type in the address page's tx table. (052e344)

  • Overhaul reorg handling for dcrd's JSON RPC v5.0.0 notification sequence. (2fd7d04)

  • Improved support for browsers with JavaScript disabled. (a66fba3)

  • Better address validation. (dde716d)

  • Numerous UI, formatting, and wording tweaks. Many other minor and under-the-hood changes.

16 code contributors (alphabetical): @ademuanthony, @buck54321, @chappjc, @codemaestro64, @degeri, @dmigwi, @gozart1, @itswisdomagain, @jholdstock, @Jujhar, @logicminds, @McEdward, @papacarp, @RogueElement, @s-ben, @SeaLightHouse.

158 changed files with 16,122 additions and 6,485 deletions: