1.3.3 • Published 5 years ago
steem-efficient-stream v1.3.3
steem-efficient-stream
Efficient way to stream blocks and account history from steem blockchain
Installation:
$ npm i --save steem-efficient-stream
It already includes typescript types. There is no need to install them separately.
Streaming account history
Key features of steem-efficient-stream:
- Iterate over single transactions. The library fetches next batch when it is needed.
- Join operations that belongs to the same transaction
- Maintains correct order of operations in transaction
- Joins operations of single transaction that are split across two batches: uses overlapping buffer to join them. The option
overlapDepth
specifies the max number of operations of single transaction that are spread on the edge of batches. - Unified format for transactions. Transactions streamed from block cache or from account_history are unified into single UnifiedSteemTransaction format.
There are two ways to fetch account history: via AsyncIterator or via ChainableSupplier
the AsyncIterator way
/* tslint:disable:no-console */
import { AccountHistorySupplierFactory, SteemAdapterFactory } from "steem-efficient-stream";
const steemAdapter = SteemAdapterFactory.withOptions({
url: "https://anyx.io/",
});
const account = "wise-team";
const iterator = new AccountHistorySupplierFactory(steemAdapter, account).withOptions({ batchSize: 5000, batchOverlap: 10 }).buildIterator();
(async () => {
while (true) {
const { done, value } = await iterator.next();
const transaction = value;
console.log(transaction);
if (done) break;
}
})();
the ChainableSupplier ways
/* tslint:disable:no-console */
import { AccountHistorySupplierFactory, SimpleTaker, SteemAdapterFactory } from "steem-efficient-stream";
const steemAdapter = SteemAdapterFactory.withOptions({
url: "https://anyx.io/",
});
const account = "wise-team";
const chainableSupplier = new AccountHistorySupplierFactory(steemAdapter, account).withOptions({ batchSize: 5000, batchOverlap: 10 }).buildChainableSupplier();
chainableSupplier
.chain(
new SimpleTaker(transaction => {
console.log(transaction);
const returnNext = true;
return returnNext;
}),
)
.catch(error => {
console.error(error);
const continueTaking = false;
return continueTaking;
});
(async () => {
await chainableSupplier.start();
})();
Streaming blocks
(!) Streaming blocks is not moved from steem-wise-sql and steem-wise-core, but will be moved, merged and tested soon.
1.3.3
5 years ago
1.3.2
5 years ago
1.3.1
5 years ago
1.3.0
5 years ago
1.3.0-beta.1
5 years ago
1.0.0-b1550852645220
5 years ago
1.0.0
5 years ago
0.4.2
5 years ago
0.4.2-next.0
5 years ago
0.4.0
5 years ago
0.4.1
5 years ago
0.3.1-next.1
5 years ago
0.3.1-next.0
5 years ago
0.3.0
5 years ago
0.2.3-beta.0
5 years ago
0.2.1
5 years ago
0.2.0
5 years ago
0.1.6
5 years ago
0.1.5
5 years ago
0.1.4
5 years ago
0.1.3
5 years ago
0.1.2
5 years ago
0.1.1
5 years ago
0.1.0
5 years ago