๐ The base KYVE node implementation.
yarn add @kyve/core
Next you need to set up the pool. You can create a new pool here.
import KYVE from "@kyve/core";
import { BigNumber } from "ethers";
const pool = "0x...";
const pk = process.env.PK;
const stake = BigNumber.from(100).mul(10).pow(18);
const jwk = ... // Arweave keyfile (optional).
const name = "my-node"; // optional.
const node = new KYVE(pool, pk, stake, jwk, name);KYVE requires two custom functions. One which fetches the data from your data source and one which validates this data. You can then simply add these two functions into the KYVE run method.
To pass data into KYVE, simply call subscriber.next():
const myUploader = (subscriber, config, logger) => {
// use your custom logic here
const data = ...
subscriber.next({ data });
}You can also, optionally, add custom tags to your transactions:
const myUploader = (subscriber, config, logger) => {
// use your custom logic here
const data = ...
const tags = [...]
subscriber.next({ data, tags });
}const myValidator = (listener, subscriber, config, logger) => {
// use your custom logic here
const valid = ...
subscriber.next({ transaction: res.transaction, valid });
}To run your node, simply call the run function and pass your functions in:
node.run(myUploader, myValidator);Coming soon!
To contribute to this repository please follow these steps:
- Clone the repository
https://github.com/KYVENetwork/core.git - Install dependencies
yarn install