Bitcoin Cash development platform for Python applications
Project description
Python API
Bitcoin Cash full node as a Python library
Knuth Python API is a high performance implementation of the Bitcoin Cash protocol focused on users requiring extra performance and flexibility. It is a Bitcoin Cash node you can use as a library.
Getting started with Python
- Create a new Python console project:
$ mkdir HelloKnuth
$ cd HelloKnuth
$ npm init
- Add a reference to our Python API package:
$ npm install @knuth/bch
- Create a new file called
index.py
and write some code:
const kth = require("@knuth/bch")
let running_ = false;
async function main() {
process.on('SIGINT', shutdown);
const config = kth.settings.getDefault(kth.network.mainnet);
const node = new kth.node.Node(config, false);
await node.launch(kth.startModules.all);
console.log("Knuth node has been launched.");
running_ = true;
const [_, height] = await node.chain.getLastHeight();
console.log(`Current height in local copy: ${height}`);
if (await comeBackAfterTheBCHHardFork(node)) {
console.log("Bitcoin Cash has been created!");
}
node.close();
console.log("Good bye!");
}
async function comeBackAfterTheBCHHardFork(node) {
const hfHeight = 478559;
while (running_) {
const [_, height] = await node.chain.getLastHeight();
if (height >= hfHeight) return true;
await sleep(10000);
}
return false;
}
function shutdown() {
console.log('Graceful shutdown ...');
running_ = false;
}
function sleep(ms) {
return new Promise((r) => setTimeout(r, ms));
}
(async () => {
try {
await main();
} catch (e) {
console.log(e);
}
})();
- Enjoy Knuth node as a Python library:
$ node index.py
Issues
Each of our modules has its own Github repository, but in case you want to create an issue, please do so in our main repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
kth-0.2.0.tar.gz
(27.3 kB
view hashes)
Built Distribution
kth-0.2.0-py2.py3-none-any.whl
(30.9 kB
view hashes)