---
# System prepended metadata

title: v0.20.0

---

![image](https://user-images.githubusercontent.com/34389545/35821974-62e0e25c-0a70-11e8-87dd-2cfffeb6ed47.png)

# v0.20.0

[![Build Status](https://travis-ci.org/turtlecoin/turtlecoin.svg?branch=master)](https://travis-ci.org/turtlecoin/turtlecoin) [![Build status](https://ci.appveyor.com/api/projects/status/github/turtlecoin/turtlecoin?branch=master&svg=true)](https://ci.appveyor.com/project/RocksteadyTC/turtlecoin)

## Special Notes

**Please note, the build [directions](https://github.com/turtlecoin/turtlecoin#how-to-compile) and project dependencies have changed**

**Upgrade to this release is required**

### Network Upgrade at block 2,000,000

This release contains a network consensus update at block 2,000,000 which will not permit an output of a transaction to exceed 1/4th of the total supply (250,000,000,000.00 TRTL). Due to the static mixin size requirement of `3` mixins and thus a ring size of `4`, it is impossible to have enough mixins available to spend an output larger than 250 billion TRTL.

### End of Life (EOL) Notice

This release is last release to contain legacy *zedwallet*. Any releases of the core suite after v0.20.0 will replace the legacy *zedwallet* with *zedwallet++* and all legacy *zedwallet* code will be removed. Please make sure that you have backed up your keys from legacy wallets, upgraded them to the new format by using zedwallet-beta, wallet-api, or wallet-upgrader and that you can access your wallets using the above tools.

#### End of Support (EOS) Notice

Support will be provided for legacy *zedwallet* through December 31, 2019.  After that date, legacy *zedwallet* will no longer be supported.

### Full Node Resync May Be Required

This release contains `2` fixes to the way that data is serialized/deserialzed. The fixes are necessary for the proper operation of `TurtleCoind`; however, the fix may reveal data corruption in your local copy of the blockchain (both the database and underlying local cache). Unfortunately, the only way to resolve the data corruption is purge the corrupted data and resync from that point or perform a full resync.

If you encounter a message stating that your local blockchain cache is corrupted, please try the directions given (be patient, it may take a while). Or, you may resync your node from scratch.

#### Checkpoints

To help speed up your sync, you may use [checkpoints](http://checkpoints.turtlecoin.lol/use.html) to help speed things up.

#### Bootstrap

Alternatively, you may also use a bootstrap to import the blockchain using a copy of the local cache.

|Link|Files Included|Snapshot Height|Size|CDN|
|---|---|---|---|---|
|[trtl.se](https://trtl.se/download)|`blocks.bin`, `blockindexes.bin`, & `DB` folder|1,814,058|55.5GB|No|
|[TurtlePay Bootstrap](https://bootstrap-cdn.turtlecoin.dev/bootstrap.tar.gz)|`blocks.bin` & `blockindexes.bin`|1,940,000|21.3GB|Yes|

**Note:** Bootstraps containing the `DB` folder may require the deletion of the `DB` folder before use.

### TurtleCoind Default Settings Change

The default database write buffer size, read buffer size, maximum open files, and background threads have decreased to help with daemon stability. The decreases are as follows:

* Write Buffer Size: `1GB` -> `256MB`
* Read Buffer Size: `1GB` -> `128MB`
* Maximum Open Files: `500` -> `125`
* Background Threads: `10` -> `4`

These values may need adjusted based on your system resources, configured limits, etc. Please review the TurtleCoind `--help` for changing these values at runtime. We recommend that pool and other service operators run with **higher** values for the best performance.

## Release Notes

### General Updates

* Removed unused code and other general code cleanup
* Removed some Boost dependencies throughout the codebase
* Resolved OSX compilation errors in some environments
* Resolved a bug when deserializing data in some edge cases
* Added additional community seed nodes:
  * **@HashVault**
  * **@ExtraHash**
  * **@LeoStehlik**
* Scheduled network upgrade at block 2,000,000 that will no longer permit transaction outputs in excess of 250,000,000,000.00 TRTL to mitigate creating unmixable outputs
  * `250,000,000,000 * 4 (current ring size)` is equal to the total supply
* Wallets will refrain from creating outputs larger than 1,000,000,000.00 TRTL to mitigate the risk of creating unmixable outputs.
  * This value is 1/1000th of the total supply
* Enabled [GitHub Actions](https://github.com/features/actions) to try out GH's new CI tools -- @rashedmyt
* Now builds consistently with boost >= 1.70

### TurtleCoind Updates

* Resolved [#889](https://github.com/turtlecoin/turtlecoin/issues/889): p2p-external-port out of range
* Resolved [#910](https://github.com/turtlecoin/turtlecoin/issues/910): setting db-enable-compression in a config file doesn't work
* Moved a few warning messages to debug messages as part of normal network operations
* Changed RocksDB compression engine from LZ4 to ZSTD for better compression ratios
* Upgraded RocksDB to v6.4.0
* Removed support for SQLite local blockchain cache due to performance issues
* Removed support for RocksDB local blockchain cache due to storage amplification issues
* Resolved an issue in returning RawBlocks via `/getblocks` endpoint
* Added optional `blockCount` parameter to `/getblocks` endpoint
* Improved the output of `print_pool_sh` in the daemon console
* Improved the output of `status` in the daemon console
* Improved the transaction validation routine to allow for faster transaction validation on adding to pool
* Improved the pool transaction validation routine when a new block is added to the chain
* The `/queryblocksdetailed` endpoint has been moved behind the `--enable-blockexplorer-detailed` configuration option
* Updated daemon CORS policy to support request preflights -- (**@kryptonchain**)
* Added the current version to the `status` command
* Added `?` as an alias of `help` in the daemon console
* Added helpful error message that provides directions for recovering from blockchain cache corruption in the local data storage

### zedwallet Updates

* N/A

### zedwallet++ (zedlwallet-beta) Updates

* Resolved [#894](https://github.com/turtlecoin/turtlecoin/issues/894): zedwallet-beta segfaults if you attempt to open a directory (**@ExtraHash**)
* Added user-agent string to requests made to a node
* Resolved issue when upgrading a wallet from legacy wallet structures
* Resolved issue whereby locked inputs may have been removed from a wallet erroneously

### turtle-service Updates

* N/A

### wallet-api Updates

* Added user-agent string to requests made to a node
* Resolved issue when upgrading a wallet from legacy wallet structures
* Resolved issue whereby locked inputs may have been removed from a wallet erroneously

### miner Updates

* N/A

### cryptotest Updates

* N/A

### wallet-upgrader (**NEW**)

* Created a simple tool designed to upgrade wallets to the latest wallet format used by `zedwallet++` and `wallet-api`

## Known Issues

* [#603](https://github.com/turtlecoin/turtlecoin/issues/603): Error in JSON serialization in multiple RPC methods regarding large uint64_t values
* [#893](https://github.com/turtlecoin/turtlecoin/issues/893): Incorrectly resetting instead of rewinding on subwallet import

## How To Sync Quickly

Visit the [checkpoints how to use site](https://checkpoints.turtlecoin.lol/use.html) for simple to follow directions on using checkpoints.

## How To Compile

Please see the [How To Compile](https://github.com/turtlecoin/turtlecoin#how-to-compile) section of the project [README](https://github.com/turtlecoin/turtlecoin/blob/master/README.md) for instructions on how to compile this release on your system.

## Changelog

See the [TurtleCoin Release](https://github.com/turtlecoin/turtlecoin/releases) page for the full change history.

## Thanks
Cryptonote Developers, Bytecoin Developers, Forknote Project, TurtleCoin Community