2.1.3 • Published 5 years ago

@rainblock/ethereum-block v2.1.3

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
5 years ago

☔️📦 RainBlock's Ethereum Block Decoder

NPM Package Build Status Coverage Status

@rainblock/ethereum-block is a decoder for the Ethereum block format. It uses native bindings to improve the performance of transaction verification. A fallback is provided when bindings cannot be used. Native bindings provide about a 30-50% speedup over pure javascript. Unlike the EthereumJS library the API exports BigInts. Typescript definitions are provided.

Install

Add @rainblock/ethereum-block to your project with:

npm install @rainblock/ethereum-block

Usage

Basic API documentation can be found here, but the following example shows basic use:

import {decodeBlock} from '@rainblock/ethereum-block';

// Block decoded to RLP format by RLP-Stream
const rlpBlock : RlpList = RlpDecode(raw);
const block : EthereumBlock = decodeBlock(rlpBlock);

Benchmarks

Benchmarks can be run by executing npm run benchmark from the package directory.

An example run on a 2016 15-inch Macbook:

no-op: 795262551±0.22% ops/s 1.26±0.013 ns/op (91 runs)
decodeBlock: 159±0.95% ops/s 6304084.39±271699.554 ns/op (79 runs)
decodeHeader: 305267±5.32% ops/s 3275.82±799.828 ns/op (81 runs)
decodeTx (js): 8450±1.97% ops/s 118344.55±11168.747 ns/op (88 runs)
decodeTx (native): 12455±1.08% ops/s 80287.49±4157.742 ns/op (89 runs)

Native is about 30-50% faster than the pure js version.

2.1.3

5 years ago

2.1.2

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.0.0

5 years ago

0.2.0

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago