Releases: chaintope/tapyrus-core
v0.6.1 release
Tapyrus version 0.6.1 is now available for download at:
https://github.com/chaintope/tapyrus-core/releases/tag/v0.6.1
Please report bugs using the issue tracker at github:
https://github.com/chaintope/tapyrus-core/issues
Project source code is hosted at github; you can get
source-only tarballs/zipballs directly from there:
https://github.com/chaintope/tapyrus-core/tarball/v0.6.1
How to Upgrade
It is recommended to upgrade all older nodes to the latest release as it contains fixes to vulnerabilities. If you are running a node on
tapyrus testnet follow the instruction in getting_started to start a new Tapyrus v0.6.1 node.
If you are running a private tapyrus network using older versions of tapyrus-core release, shut it down. Wait until it has completely shut down.
Follow the instruction in getting_started to sart a new Tapyrus v0.6.0 network. Tapyrus blockchain created by older versions, before v0.5.0
are not compatible with v0.6.1 because of the absence of xfield in the block header. But blockchain created by v0.5.0, v0.5.1 and v0.5.2 is compatible
with v0.6.1.
Downgrading warning
If you upgrade to a node running v0.6.1 and need to switch back to an older version, the blockchain and chainstate on the node are backward compatible as
long as no xfield change was mode in the network.
Dynamic Block size
This release allows the size of each block in a Tapyrus network to be increased from the default 1MB. This is done with the help of a new xfield type.
When the block size is changed using the xfield in a federation block, the new block size becomes the maximum limit for every block created thereafter.
A tapyrus node could create a block of upto the MAX BLOCK SIZE
using the transactions in its mempool. Note that in order to sign blocks of the new
block size, the signer network needs to be upgraded too. The height and xfield value, in this case, max block size are configured in the signer network.
This is essential to create the federation block. ALl xfields supported in Tapyrus are listed here .
Warning:
- Ensure that all nodes in an older network are upgraded before attempting to change the block size limit. All older nodes reject blocks with
are bigger than 1MB. So the network could split, older nodes could create a fork chain which would be lost
when those nodes upgrade. - A block size change cannot be reversed in a Tapyrus network. If the old block size needs to be restored in a network for unforeseen reasons, another federation
block with the old block size needs to be created. This needs to follow the signer network configuration as well.
Compatibility
Tapyrus v0.6.1 is supported on Linux platform in two CPU architectures namely x86_x64 and arm64(aarch64)
0.6.1 change log
General improvements
- PR280, PR281, Tracing of select tracepoints/events in a live tapyrus node is possible with this release. The list of all allowed tracepoints is listed here.
- PR276 Improve stability of thread synchronization and mutexes used in tapyrus
- PR262 Check that uncompressed public keys are not accepted by tapyrus-genesis
- PR286 Block height is standardized across the code to 32 bit from 64 bit
- PR301 Upgrade CI to ubuntu22 and port ripemd160 implementation from bitcoin
Fix vulnerabilities inherited from bitcoin core:
- PR312 Disclosure of CPU DoS due to malicious P2P message (≤ version 0.19.2)
- PR313 Disclosure of memory DoS due to malicious P2P message (≤ version 0.19.2)
- PR314 Disclosure of CPU DoS / stalling due to malicious P2P message (≤ version 0.17.2)
- PR315 Disclosure of netsplit due to malicious P2P messages by first 200 peers (≤ version 0.20.1)
- PR317 Disclosure of remote crash due to addr message spam
- PR318 Disclosure of hindered block propagation due to mutated blocks
- PR319 Disclosure of DoS due to inv-to-send sets growing too large
- PR318 Disclosure of CVE-2024-35202
- PR318 Disclosure of hindered block propagation due to stalling peers
Bug fixes
RPC
- PR308 dumptxoutset rpc is added to create a dump of the utxo set on a tapyrus node
BUILD
v0.6.0 release
Tapyrus version 0.6.0 is now available for download at:
https://github.com/chaintope/tapyrus-core/releases/tag/v0.6.0
Please report bugs using the issue tracker at github:
https://github.com/chaintope/tapyrus-core/issues
Project source code is hosted at github; you can get
source-only tarballs/zipballs directly from there:
https://github.com/chaintope/tapyrus-core/tarball/v0.6.0
How to Upgrade
It is recommended to upgrade all older nodes to the latest release as it contains fixes to vulnerabilities. If you are running a node on
tapyrus testnet follow the instruction in getting_started to start a new Tapyrus v0.6.0 node.
If you are running a private tapyrus network using older versions of tapyrus-core release, shut it down. Wait until it has completely shut down.
Follow the instruction in getting_started to sart a new Tapyrus v0.6.0 network. Tapyrus blockchain created by older versions, before v0.5.0
are not compatible with v0.6.0 because of the absence of xfield in the block header. But blockchain created by v0.5.0, v0.5.1 and v0.5.2 is compatible
with v0.6.0.
Downgrading warning
If you upgrade to a node running v0.6.0 and need to switch back to an older version, the blockchain and chainstate on the node are backward compatible as
long as no xfield change was mode in the network.
Dynamic Block size
This release allows the size of each block in a Tapyrus network to be increased from the default 1MB. This is done with the help of a new xfield type.
When the block size is changed using the xfield in a federation block, the new block size becomes the maximum limit for every block created thereafter.
A tapyrus node could create a block of upto the MAX BLOCK SIZE
using the transactions in its mempool. Note that in order to sign blocks of the new
block size, the signer network needs to be upgraded too. The height and xfield value, in this case, max block size are configured in the signer network.
This is essential to create the federation block. ALl xfields supported in Tapyrus are listed here .
Warning:
- Ensure that all nodes in an older network are upgraded before attempting to change the block size limit. All older nodes reject blocks with
are bigger than 1MB. So the network could split, older nodes could create a fork chain which would be lost
when those nodes upgrade. - A block size change cannot be reversed in a Tapyrus network. If the old block size needs to be restored in a network for unforeseen reasons, another federation
block with the old block size needs to be created. This needs to follow the signer network configuration as well.
Compatibility
Tapyrus v0.6.0 is supported on three platforms, Linux, MacOS and Windows(WSL) in two CPU architectures namely x86_x64 and arm64(aarch64)
0.6.0 change log
General improvements
- PR280, PR281, Tracing of select tracepoints/events in a live tapyrus node is possible with this release. The list of all allowed tracepoints is listed here.
- PR276 Improve stability of thread synchronization and mutexes used in tapyrus
- PR262 Check that uncompressed public keys are not accepted by tapyrus-genesis
- PR286 Block height is standardized across the code to 32 bit from 64 bit
- PR301 Upgrade CI to ubuntu22 and port ripemd160 implementation from bitcoin
Fix vulnerabilities inherited from bitcoin core:
- PR312 Disclosure of CPU DoS due to malicious P2P message (≤ version 0.19.2)
- PR313 Disclosure of memory DoS due to malicious P2P message (≤ version 0.19.2)
- PR314 Disclosure of CPU DoS / stalling due to malicious P2P message (≤ version 0.17.2)
- PR315 Disclosure of netsplit due to malicious P2P messages by first 200 peers (≤ version 0.20.1)
- PR317 Disclosure of remote crash due to addr message spam
- PR318 Disclosure of hindered block propagation due to mutated blocks
- PR319 Disclosure of DoS due to inv-to-send sets growing too large
- PR318 Disclosure of CVE-2024-35202
- PR318 Disclosure of hindered block propagation due to stalling peers
Bug fixes
- PR275 Fix crash in reloadxfield/ reindex crash
RPC
- PR308 dumptxoutset rpc is added to create a dump of the utxo set on a tapyrus node
BUILD
v0.6.0rc1
v0.5.2
This release contains bug fixes and new command line option.
0.5.2 change log
Federation management
Tapyrus Core version v0.5.2 contains critical bug fixes to make federation management reliable:
- Adding a new node to the tapyrus core network after an aggregate public key update(using
xField
in the block header) is now supported. - A node restarted after aggregate pubkey update can now use the block tree db key to persist and retrieve the list of aggpubkeys instead of using
-reindex
. - A new command line argument
-reloadxfield
is added to create the block tree db entry in older nodes while upgrading.
Token issue fee
Fee required to issue new tokens/colored coins is made to match the network fee rate. It was one tapyrus more than the network fee rate until now.
v0.5.2.rc1
Tapyrus Core 0.5.2 release candidate 1.
v0.5.1
This release contains minor bug fixes and support for arm64 architecture binaries and containers.
0.5.1 change log
ARM64 container
With version v0.5.1 Tapyrus is supported on ARM64 hosts. Tapyrus containers are also a vailable for ARM64 architecture
secp256k1
secp256k1 library is moved to its own repository and added to tapyrus repository as a sub module to allow independent development.
RPC
- getrawtransaction - version is renamed to features.
- decoderawtransaction - version is renamed to features..
v0.5.1rc1
Release with aarch64 support
v0.5.0 release
Tapyrus Core version 0.5.0 is now available containing some major improvements and bug fixes. Please refer to the release notes for details.
Tapyrus version 0.5.0 is now available for download at:
https://github.com/chaintope/tapyrus-core/releases/tag/v0.5.0
Please report bugs using the issue tracker at Github:
https://github.com/chaintope/tapyrus-core/issues
How to Upgrade
If you are running a node on older version(v0.3.0, v0.4.0, v0.4.1) testnet, shut it down. Wait until it has completelyshut down. Follow the instruction in Getting Started to start a new Tapyrus v0.5.0 node.
If you want to running a private tapyrus network, shut down all nodes. Follow the instruction in Getting Started to start a new Tapyrus v0.5.0 network. As v0.5.0 makes significant changes to consensus rules, when a running network is stopped all nodes should be upgraded before restarting the network again. Please note that tapyrus-signer network should also be upgraded to v0.5.0 following tapyrus signer network setup.
Downgrading warning
Tapyrus blockchain created by older versions(v0.3.0, v0.4.0 and v0.4.1) is not compatible with v0.5.0 and vice-versa. The testnet is reset with the release of v0.5.0.
Compatibility
Tapyrus v0.5.0 is supported on three platforms : Linux, MacOS and Windows(WSL)
Notable changes
Native Colored Coins scheme
With version v0.5.0 Tapyrus blockchain supports colored coins. Tapyrus consensus, script and wallet layers have been enhanced to support the ti. Apart from TPC, the default tapyrus coin, other tokens like NFTs, single issue tokens and reissuable tokens are now supported. Tokens may be issued, sent or received and burnt on Tapyrus blockchain. Complete specification of colored coins in Tapyrus can be found in here (日本語).
Script
OP_COLOR
opcode has been added to identify and process token/colorid in a transaction script.
Colored coin wallet
Tapyrus core wallet now supports colored coins. Coin issue, transfer and burn can be performed using tapyrus core wallet. New RPCs have been added to support these operations.
- getcolor
- issuetoken
- transfertoken
- burntoken
- reissuetoken
RPC overhaul
Tapyrus RPCs has been modified to remove old deprecated features and parameters. Account API support has been removed. Colored coin support has been added to other RPCs as follows. All the RPCs that get private key has been changed to accept WIF private key.
- getnewaddress - addresstype parameter has been removed and color parameter has been added.
- getrawchangeaddress - address type parameter has been removed and color parameter has been added.
- addmultisigaddress - address type parameter has been removed.
- getreceivedbyaddress - minconf parameter has been removed.
- getreceivedbylabel - minconf parameter has been removed.
- getbalance - account parameter has been removed and color parameter has been added.
- sendmany - account and minconf parameters have been removed and color parameter has been added.
- listreceivedbyaddress - minconf parameter has been removed.
- listreceivedbylabel - minconf parameter has been removed.
- listtransactions - dummy parameter has been removed.
- listunspent - account has been removed from the result.
- fundrawtransaction - iswitness flag has been removed.
- generate - private key parameter has been changed to accept WIF private key.
- generatetoaddress - private key parameter has been changed to accept WIF private key.
Removed RPCs
- getaccountaddress
- getaccount
- getaddressesbyaccount
- movecmd
- sendfrom
- addwitnessaddress
- listaccounts
Tapyrus Core v0.5.0rc4
Tapyrus Core 0.5.0 release candidate 4.
Tapyrus Core v0.5.0rc3
Tapyrus Core 0.5.0 release candidate 3.