En esta entrada intentaremos explicar como minar la Blockchain, concretamente con el software basado en Bcoin con el que podremos montar nuestra propia instancia Blockchain de Bitcoin (BTC) a modo de pool, y configurar nuestro minero para generar moneda
Bcoin es una implementación completa del programa oficial de Bitcoin en NodeJS, como sabéis este lenguaje permite asincronía de forma nativa, de esta manera se busca minar bloques de forma asíncrona para aprovechar al máximo los recursos de la máquina durante el minado
En el siguiente ejemplo se muestra como programar un minero simple con mempool y función de minado asíncrona
'use strict';
const bcoin = require('bcoin');
// Default network (so we can avoid passing
// the `network` option into every object below.)
bcoin.set('regtest');
// Start up a blockchain, mempool, and miner using in-memory
// databases (stored in a red-black tree instead of on-disk).
const blocks = bcoin.blockstore.create({
memory: true
});
const chain = new bcoin.Chain({
network: 'regtest',
memory: true,
blocks: blocks
});
const mempool = new bcoin.Mempool({
chain: chain
});
const miner = new bcoin.Miner({
chain: chain,
mempool: mempool,
// Make sure miner won't block the main thread.
useWorkers: true
});
(async () => {
// Open the chain
await blocks.open();
await chain.open();
// Open the miner (initialize the databases, etc).
// Miner will implicitly call `open` on mempool.
await miner.open();
// Create a Cpu miner job
const job = await miner.createJob();
// run miner
const block = await job.mineAsync();
// Add the block to the chain
console.log('Adding %s to the blockchain.', block.rhash());
console.log(block);
await chain.add(block);
console.log('Added block!');
})().catch((err) => {
console.error(err.stack);
process.exit(1);
});
Si montamos Bcoin con la Blockchain completa necesitaremos espacio suficiente para bajarla en el disco, actualmente está en torno a los 500Gb de tamaño y si se indexan las direcciones y las transferencias necesitaremos un poco más de espacio
Como curiosidad este software permite minar más de una moneda, y es que el funcionamiento de la Blockchain es muy parecido entre las criptomonedas
Suerte con el minado ⛏️
Comments
No comments yet. Be the first to react!