This repository contains the code for the IOP Hydra Blockchain. The IOP Hydra Blockchain is an ARK bridgechain and follows upstream changes as closely as possible. Changes to naming schemes, documentation and other auxiliary files are thus kept to a minimum. If you want to learn more about the code, check out the original code base at @ARKEcosystem.
Below we describe what were the changes we made release by release compared to the original Ark code.
- Use new
hydraledger.tech
domain.
- Remove transaction asset's size limit
- Add transaction length limit
- Upgraded SSI/DNS plugin to 5.0.4
- Upgraded SSI/DNS plugin to 5.0.2
- Upgraded SSI/DNS plugin to 5.0.1
- Upgraded SSI/DNS plugin to 5.0.0
- Fixed: snapshot restore
- Upgraded SSI/DNS plugin to 4.0.6
- Upgraded Hydra Core to 2.7.24
- IOP SSI updated to 4.0.2
- Introduced IOP DNS (project Coeus).
- IOP SSI updated to 3.1.0
- IOP SSI updated to 2.0.6
- Rate limiter settings changed
- Wallet API emits event when started
- Hydra Core updated to 2.6.31 (jemalloc can now be used as a default memory manager)
- Jemalloc is used by the Docker images
- IOP SSI updated to 2.0.5
- IOP SSI added as a submodule (hence
plugins.js
config files were updated as well) - Custom Docker scripts and images are updated
- Fix: During
BlockApplied
andBlockReverted
events the block's data must contain the transactions:
This is a mandatory upgrade. To be able to use Hydra, you must upgrade your plugins.js
file in order to be part of the consensus.
If you are using core-controler, we have now there a develop
and soon a master
branch where you can read how you can upgrade your code.
If you are using Docker, we provide a mountpoints.tar.gz
file for each network which you can unpack (and overwrite) as it's described in our Docker documentation.
- Custom Docker scripts added
- Chain network (p2p, api, webhook ports), config (database password/user/dbname, peers, delegates) and crypto (milestones, exceptions, genesis block, network) parameters are changed
- Added a delegate guide
- Fix: Removed genesis block hacking from https://github.com/ArkEcosystem/core/blob/master/packages/crypto/src/blocks/block.ts#L100
PRs that are inline with our goals to the core IOP user experience are more than welcome. To avoid losing precious time you spend on coding, you could open an issue first and discuss what you are up to before forking and sending us a PR.
Small note: If editing the README, please conform to the standard-readme specification.
Please visit our Developer Portal.
In the following section we help you to setup a local testnet where you update Hydra Core's code and test locally with a testnet setup.
The following packages are required before you clone this repository.
# Clone the hydra core repo.
$ git clone [email protected]:Internet-of-People/hydra-core.git
$ cd hydra-core
# Install Python 2 if you don't have it, due to this bug: https://github.com/JoshuaWise/better-sqlite3/issues/310
# On Ubuntu
$ sudo apt install python2
# Move into the repo and run setup. `setup` hook will install all necessary Javascript dependencies to get you up and running with Hydra core.
$ yarn setup
$ docker run -it --rm --name postgres-hydra -p 5432:5432 -e POSTGRES_DB=hydra_testnet -e POSTGRES_USER=hydra -e POSTGRES_PASSWORD=password postgres:11-alpine
# Reset/Create the config
$ ./packages/core/bin/run config:reset --network=testnet
# Start a local testnet
$ ./packages/core/bin/run core:run --network=testnet --ignoreMinimumNetworkReach --networkStart --env=test
This project exists thanks to all the people who contribute.
Ark Core is released under the MIT © ARK Ecosystem Changes for IOP Hydra are released under the MIT © 2020 Decentralized Society Foundation PA