Releases: EpicCash/epic
3.6.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
- 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
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
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 generatedepic-server.toml
- The correct settings of
-
Resolves compiler warnings by @who-biz (acc157e, 2ab41cf, 3b58407, 88743b1, 4179d5b, 569961e, f1721fd)
-
Adds hard-coded
BlockchainCheckpoints
, andskip_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 totrue
(double safety-switch) - Allows users who specify
true
for both settings to skip PoW validation for the entirety ofHeaderSync
phase
- Has no effect if
-
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
- 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
-
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 last1000
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 toHeaderSync
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 thatHeaderSync
may resume from a clean state
- Previously, once
-
Greatly improves handling of
OrphanBlockPool
, reducing sync time & cpu usage greatly by @who-biz #105OrphanBlockPool
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 aRwLock<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
intocheck_orphans_loop
andcheck_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 earlybreak
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)
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
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
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
- Add 'only_randomx' and 'no_progpow' options to config by @who-biz in #84
- Updates running.org doc with latest instructions by @code-chronos in #86
- seeds config changes - epicserver.toml - Enhancement by @shunmuga-sundaram in #87
- Merge fastsync for headers, and ring, ownerapi, thread fixes by @who-biz in #89
- update mining algo policy to 48% progpow, 48% randomx, 4% cuckatoo by @johanneshahn in #90
- 3.4.0 by @johanneshahn in #93
Note Regarding Debian Package
- Please note, debian package was created after the initial releases were posted.
- Therefore the
epic
binaries packaged intoepic_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
- @who-biz made their first contribution in #84
- @code-chronos made their first contribution in #86
- @shunmuga-sundaram made their first contribution in #87
Full Changelog: v3.3.2...v3.4.0
Release v3.3.2
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
- V3 custom config for testnets by @johanneshahn in #57
- allow usernet to mine more blocks using header version 6, just like f… by @MarcioMacedoBA in #58
- fix: A small update to enable block mining on usernet v3 by @MarcioMacedoBA in #59
- feat: usernet now is optimized to mine more blocks per second by @MarcioMacedoBA in #60
- fix: small fix related to match_ref variable by @MarcioMacedoBA in #61
- Fix/documentation by @MarcioMacedoBA in #62
- feat: Added feedback if foundations are broken by @JualnSilva in #65
- Feat/get blocks by @rassilva in #64
- Update the develop branch with master commits by @JualnSilva in #66
- Feat: Add Testnet configuration file by @JualnSilva in #67
- Fix cucumber tests by @JualnSilva in #69
- Edit pre-commit and add PR template by @Jualns in #75
- Update main readme for the project by @jhelison in #78
- Add automation to build the release binaries and tar files by @jhelison in #76
- Freeze randomx and progpow libraries using tags by @jhelison in #73
- Make builds reproducible by @jhelison in #74
- Release v3.3.2 by @jhelison in #79
New Contributors
- @MarcioMacedoBA made their first contribution in #58
- @JualnSilva made their first contribution in #65
- @rassilva made their first contribution in #64
- @Jualns made their first contribution in #75
- @jhelison made their first contribution in #78
Full Changelog: v3.0.0...v3.3.2
Release v3.0.0
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
- No need to manually configure router ports or use
What's Changed
- Fix transaction proof on transactions before of fork by @aroncds in #1
- Fix foundation fork proof by @aroncds in #4
- Fix float on foundation levy by @aroncds in #7
- Cucumber tests and API client basic-auth by @ceciliacsilva in #6
- Missing 2.22% in FOUNDATION_LEVY #13 by @johanneshahn in #15
- Update Cargo.toml by @hdmark in #27
- Update randomx-rust by @EricShimizuKarbstein in #33
- Update build instructions by @EricShimizuKarbstein in #32
- Feature/create block fees submodule by @josiasal in #34
- Fix floonet foundation file by @EricShimizuKarbstein in #35
- Fix incompatibilities between v2 and v3 log-level on the configuration file by @EricShimizuKarbstein in #36
- Retry connecting to the seed servers when there is no connected peers by @josiasal in #38
- fix: Illegal Instruction issue by @EricShimizuKarbstein in #37
- Draft: Doubling the value of the MAINNET_FIRST_HARD_FORK constant by @josiasal in #40
- refactor: Remove libssl-dev as build requirement by @acosta-brickabode in #43
- fix: Replace pancurses-backend feature with termion-backend to fix ncurses rendering issues by @acosta-brickabode in #47
- feat: Implement Github Action for generating Linux artifact by @acosta-brickabode in #46
- fix: Replace log::info feature with log::debug to fix overprinting sync messages by @acosta-brickabode in #45
- Fix windows build by @EricShimizuKarbstein in #51
New Contributors
- @ceciliacsilva made their first contribution in #6
- @hdmark made their first contribution in #27
- @EricShimizuKarbstein made their first contribution in #33
- @josiasal made their first contribution in #34
Full Changelog: https://github.com/EpicCash/epic/commits/v3.0.0