Skip to content

Releases: EpicCash/epic

3.6.0

28 Feb 19:03
c9f9e73
Compare
Choose a tag to compare

What's Changed

  • Update cursive dep to 0.17, tableview to 0.14.0 by @who-biz in #121
  • Update croaring dependency to 1.0.1, croaring-sys 1.1.0 by @who-biz in #122
  • Update libgit2-sys, resolve dependabot vulnerability by @who-biz in #125
  • Bump version to 3.5.2 by @who-biz in #126
  • Bump epic to v3.6.0 for upcoming wallet release by @who-biz in #127
  • Fix test compilation on rust 1.76 by @who-biz in #128

Full Changelog: v3.5.0...v3.6.0

For users on Ubuntu 22.04 Jammy, you will need to install libssl1.1.1f from Ubuntu's package manager. Steps below:

dpkg -l | grep libssl

# If it lists 1.1.1g you will need to remove those with:
sudo dpkg -r libssl1.1:amd64

# and maybe
sudo dpkg -r libssl-dev:amd64 (first if it's installed too)

# then install 1.1.1f
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb

Please check the following sha256sums against your downloaded files:

epic-3.6.0-linux-amd64.tar.gz
14eeb5da8feb10739fad820e86a2c8caaea56bedb3358dec36388657f847f3e9

epic_3.6.0_amd64.deb
7b53a4cf3479916d6e530262725d01b2c77d50967f9e0c60e43ac91635c0f5e6

MacOS-Intel_v3.6.0.zip
787a141bb17c96ca35010c88c625fdeeb00a8a958aab1f6e3b39a2e872724c2c

Windows_v3.6.0.zip
8e996348eb81e1596d2c2cfc3047d32450b30c80b8839df1bc8cdff3aba137cf

3.5.2

22 Feb 22:15
ee379d2
Compare
Choose a tag to compare
3.5.2 Pre-release
Pre-release

Overview

This is a maintenance release, primarily for the purpose of dependency management, and wallet/epicbox stability.

Most of the meaningful changes are wallet-specific and unrelated to server. As a result, changes to this repository have been minimal since v3.5.0.

What's Changed

  • Update cursive dep to 0.17, tableview to 0.14.0 by @who-biz in #121
  • Update croaring dependency to 1.0.1, croaring-sys 1.1.0 by @who-biz in #122
  • Update libgit2-sys, resolve dependabot vulnerability by @who-biz in #125
  • Bump version to 3.5.2 by @who-biz in #126

Full Changelog: v3.5.0...v3.5.2

3.5.0

21 Nov 23:49
7f530ea
Compare
Choose a tag to compare

Overview

This release contains 64 commits since the last major release v3.4.0. Many of which are significant improvements to Epic's node server functionality. The most significant of these changes are detailed below.

v3.5.0 includes a dramatic reduction in blockchain synchronization time, as well as effort involved. Previously, syncing a full node from zero took a very long time, and a lot of manual interaction. Users can now sync in a few hours, without intervention.

Approximate Benchmarking:
Prior full sync time: 72hrs, multiple manual restarts needed
New full-sync performance: 1hr 58min, no intervention necessary

This performance improvement is a combination of work done by:

  • @johanneshahn in writing a much more performant replacement for Grin's HeaderSync code, which preserves slowsync backwards compatibility
  • And work by @who-biz toward a significant overhaul of BodySync phase

None of the differentiating code is present in any upstream codebase.

Note: The above benchmark used the "least PoW verification" configuration, on a dedicated Linux server. I.e. skip_pow_validation = true and disable_checkpoints = true. Please see changelog below for disambiguation on what these options do (and what they do not). Total synchronization time will vary, based on hardware specs.

What's Changed

  • Fixes config file settings for peer_max_count by @who-biz (4966bb9)

    • The correct settings of peer_max_inbound/outbound_count are now detailed properly in generated epic-server.toml
  • Resolves compiler warnings by @who-biz (acc157e, 2ab41cf, 3b58407, 88743b1, 4179d5b, 569961e, f1721fd)

  • Adds hard-coded BlockchainCheckpoints, and skip_pow_validation config setting by @who-biz (3163ac8)

    • A checkpoint is present for every 200,000th block in long-term blockchain history, with a final checkpoint at height 2.2M
    • Setting skip_pow_validation = true in server settings will skip pow validation for all blocks prior to latest checkpoint.
    • This setting is toggled false by default.
  • Adds ussage of GitHub actions/badges and CI for PRs, commits to master branch by @who-biz (5c65fa2)

  • Adds disable_checkpoints setting to config options , refactor checkpoint code by @who-biz (bcf0ecc)

    • Has no effect if skip_pow_validation is not set to true (double safety-switch)
    • Allows users who specify true for both settings to skip PoW validation for the entirety of HeaderSync phase
  • Resolves ScrollBase deprecation in cursive crate - commits taken from upstream Grin by @who-biz (17bac4a)

  • Fixes infinite loop for reorg case in FastHeaders logic by @who-biz (b77a741)

    • In cases of reorg, peers send us the last header that matches our history. This case was not handled in code, and resulted in an inability for HeaderSync to progress
    • This case is now handled gracefully
  • Updates server dependencies (tokio, hyper, and many more) by @johanneshahn (d135732, d899850, 65783a3, 236ff25)

  • Fixes cucumber testing suite by @johanneshahn (88120db)

  • General code cleanup following dependency upgrades by @who-biz

  • Adds a dynamic threshold to force full PoW verification during BodySync of last 1000 blocks by @who-biz (cc05f3d, bfb0924)

  • Adds threshold for ignoring new block/header broadcasts while syncing by @who-biz (4f17617)

  • Enables server to switch from BodySync back to HeaderSync phase by @who-biz (59f5036, 9aada0b)

    • Previously, once HeaderSync phase had completed, code did not support switching back to this phase
    • Due to work-intensive PoW, and poor OrphanBlockPool handling (Grin), BodySync phase was extremely slow
    • If many new blocks were found during this period, we could not switch back to HeaderSync to fetch them
    • Logic has now been added to clear OrphanBlockPool and reset all states so that HeaderSync may resume from a clean state
  • Greatly improves handling of OrphanBlockPool, reducing sync time & cpu usage greatly by @who-biz #105

    • OrphanBlockPool is essentially used as an LRUCache during blockchain synchronization, when we receive blocks out-of-order.
    • Previously, check_orphans function had looping logic that would potentially execute 1000+ times, before function exit
    • Due to OrphanBlockPool being a RwLock<HashMap> type - this was blocking reads/writes while queue continued to grow
    • Some of this looping logic is useful, so we have spliced check_orphans into check_orphans_loop and check_orphans
    • check_orphans now checks for only a single orphan at a time, minimizing prohibitive locking
    • When OrphanBlockPool grows large, we call the looping function to quickly depopulate it, with an early break to prevent problematic locks
    • Finally, MAX_ORPHANS_COUNT was decreased to 60 - again, to minimize prohibitive locking
  • Improves efficiency of peer comms, with less spammy block requests (0991826, 6603488)

  • Version bump to 3.5.0 by @who-biz (7f530ea)


Note: More information on the BodySync improvements is available here: #105
More information on HeaderFastSync code can be found in commits located here: #89

Full Changelog: v3.4.0...v3.5.0

v3.4.9

23 Oct 19:52
74c746e
Compare
Choose a tag to compare
v3.4.9 Pre-release
Pre-release

What's Changed

  • Update debian package for 3.4.0 by @who-biz in #94
  • Fix config file settings for peer_max_count by @who-biz in #96
  • Resolve most of warnings present when compiling by @who-biz in #99
  • Add checkpoints, and ability to skip PoW check in range by @who-biz in #100
  • Add Github Actions workflow for master branch by @who-biz in #101
  • Add 'disable_checkpoints' config setting, refactor checkpoint code by @who-biz in #103
  • Remove usage of deprecated 'description' in errors by @who-biz in #106
  • Resolve ScrollBase deprecation in cursive crate by @who-biz in #107
  • Resolve Compiler Warnings by @who-biz in #108
  • Tolerate reorganizations in HeaderFastSync, fix infinite loop by @who-biz in #112
  • Resolve "noop_method_call" warnings for rust 1.73+ by @who-biz in #113

Full Changelog: v3.4.0...v3.4.9

v3.4.0

10 Jun 20:40
1ecdd85
Compare
Choose a tag to compare

Release v3.4.0

Highlighted Changes

  • Update mining algo policy to 48% ProgPow, 48% Randomx, 4% Cuckatoo for all future eras
  • New sync_header process for faster initial chain sync
  • Add a seeds list and change default seed config to "List"
  • Update ring to 0.16.x

What's Changed

Note Regarding Debian Package

  • Please note, debian package was created after the initial releases were posted.
  • Therefore the epic binaries packaged into epic_3.4.0_amd64.deb include commits up to: cbd4e68
  • This includes no changes to source files, strictly those used in packaging process.

Upgrade Notice:

  • Please change your server config (epic-server.toml) to support the faster sync process for other peers

from:

[server.p2p_config.capabilities]
bits = 15

to:

[server.p2p_config.capabilities]
bits = 31
  • Please change your server config (epic-server.toml) to use the new seed servers

from:

seeding_type = "DNSSeed"
#seeds = ....

to:

seeding_type = "List"
seeds = ["95.217.197.180:3517","5.161.127.56:3414","5.75.242.4:3414","5.78.71.29:3414"]

System Requirements:

  • Windows - 10.x, 11.x
  • MacOs - 12.4 (Intel)
  • Linux/Ubuntu - 22.x

New Contributors

Full Changelog: v3.3.2...v3.4.0

Release v3.3.2

23 Jan 18:04
e22cee1
Compare
Choose a tag to compare

Highlighted Changes

  • V3 custom config for testnets
  • Logs menu on TUI mode
  • Enable the new PolicyConfig for onlyrandomx and noprogpow
  • Changes on the usernet
    • Mine more blocks per second
  • Added feedback if foundations are broken
  • Add get blocks and get last n kernels endpoints
  • Get blocks returns all the mined blocks
  • Last n kernels returns all the available kernels
  • Add Testnet configuration file
  • Reproducible builds
  • New readme

More information about the highlighted changes can be found on our Wiki: Epic - v3.3.2

What's Changed

New Contributors

Full Changelog: v3.0.0...v3.3.2

Release v3.0.0

19 Dec 12:22
Compare
Choose a tag to compare

Highlighted Changes

  • Non-interactive transactions (v1)
    • Send $EPIC just like any other coin!
    • This removes a point of friction for the exchanges.
    • No longer both parts of the transaction need to be online at the time transaction happens
  • Improved security and scalability
    • Bug fixes and enhanced testing
    • Checks for bad hashes
  • More privacy
    • Better Tor support
    • From an end-user perspective, there should no longer be a need to configure routers and firewalls to receive. Sending and receiving should feel like any other cryptocurrency, where a simple encoded address is all you need to share before receiving. No firewall or router configuration should be necessary.
  • Payment proofs
    • Enable external auditability of transactions
  • Automatic Port Opening
    • No need to manually configure router ports or use ngrok

What's Changed

New Contributors

Full Changelog: https://github.com/EpicCash/epic/commits/v3.0.0