Onechain Versions Save

minimal blockchain ever

v3.0.0

4 years ago

onechain finally has a permanent database. You can turn on/off your node.js server freely. This release contains several updates as below:

  • Adding levelDB for saving blockchain data permanently.
  • Dockerized.
  • Providing live demo via Ainize open-resource platform.
  • Converting into ES6 format.
  • Codes are more modulized.
    • Using module.js for preventing cyclic import.
    • types.js contains complex types like block, blockchain class and their methods.
    • crypto.js and utils.js do more work.
  • Adding nodemon for running server continuously.
  • Fixing default location about saving wallet.
  • Distinguish dependencies and devDependences in package.json.

v2.2.1

4 years ago

There are some slight bugs on v2.2.0. Actually, they are not bugs but typos about version in documents and codes. Now they are fixed. This release contains patches as below after commit @d767669 which replaces @32fc226:


In version 2.2.1 update, we do:

  • Fix the onechain's version badge in README.md to v2.2.1.
  • Fix the onechain's version field in package.json and package-lock.json to v2.2.1.
  • Fix the onechain-explorer's version field in package.json and package-lock.json to v2.2.1.

v2.2.0

4 years ago

onechain finally has a front-end now! You can see the latest blocks and details about a specific block via blockchain explorer. This release contains several updates as below after commit @bad4575:


In version 2.2.0 update, we implement:

  • Add a front-end for the blockchain explorer.
    • Visualize the latest block headers.
    • Visualize the specific block by block number.
  • Add block/:number API to get a details about specific block.

v2.1.0

4 years ago

This is the first release of onechain with several updates as below after commit @3caa23b:


In version 2.0.0 update, we implement:

  • Remove addPeer which adds a single peer.
  • Instead of addPeer, Introduce addPeers which can add multiple peers at once.
  • Change block structure
    • Now block is classified into block body and block header.
    • The block header contains index,previous hash,timestamp,merkle root, and nonce features.
    • The block body can contain any kind of (stringify) data.
  • A genesis block mimics the real Bitcoin's genesis block features.

In version 2.1.0 update, we implement:

  • Add a version field into block header for backward compatibility.
  • Get onechain's current version Just-In-Time from package.json.
  • Remove sorting data implements. Now data construct merkle root with order in block body.

In general:

  • Fix a vulnerability of websocket. Use >= 3.3.1 version.
  • Fix a case-sensitive problem. Use toUpperCase() on every hash function's result.
  • Change a private key's default directory from HTTP_PORT to ./default.

There are some branches used for educational purpose. See the book "컴퓨터과학으로 배우는 블록체인 원리와 구현" at 위키북스.