@kyve/logic
A protocol for verified data streams.
Usage
Installation
yarn add @kyve/logic
Using KYVE in your application
Initiating a node
import KYVE from "@kyve/logic";
const node = new KYVE();
Node configuration
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 instance.
Specifying an upload function
To pass data into KYVE, simply call subscriber.next()
:
const myDataFetcher = async (subscriber) => {
const data = ...
subscriber.next({ data });
}
You can also optionally add custom tags to your transactions:
const myDataFetcher = async (subscriber) => {
const data = ...
const tags = [...]
subscriber.next({ data, tags });
}
Specifying a validation function
const myDataValidator = async (subscriber) => {
const fetchedData = ...
const arweaveTxId = ...
const isValid = ...
subscriber.next({ valid: isValid, id: arweaveTxId });
}
Giving the node your functions
import KYVE from "@kyve/logic";
const node = new KYVE(myDataFetcher, myDataValidator);
Pool configuration
Next you need to set up the pool. You can create a new pool here.
After you have created the pool, insert its name and your arweave keyfile into the node config:
import KYVE from "@kyve/logic";
const pool = "demo-pool";
const jwk = ...
const node = new KYVE(myDataFetcher, myDataValidator, { pool, jwk });
Running your node
To run your node, simply call the .run()
function:
import KYVE from "@kyve/logic";
const pool = "demo-pool";
const jwk = ...
const node = new KYVE(myDataFetcher, myDataValidator, { pool, jwk });
(async () => {
await node.run();
})();
Querying data