gatsby-plugin-cryptowerk-blockchain
v0.1.5
Published
A gatsby plugin to push hash of build folder into blockchain to assure data integrity
Downloads
2
Maintainers
Readme
gatsby-plugin-cryptowerk-blockchain
This plugin is in beta and not officially supported yet
Feel free to open issues for any questions or ideas
Gatsbyjs plugin that uses the Cryptowerk blockchain-as-a-service (BaaS) to create an immutable seal on each build.
With these digital seals, the public folder from a gatsby build may now be matched to its original to verify proof of integrity. Learn more in the Cryptowerk developer portal
When you run gatsby build
, this plugin will hash and seal the content of the public folder. First by using folder-hash and then calling Cryptowerk API to take care of writing to the blockchains of your choosing. In this version hashes are propagated upwards, the hash that is returned for a folder is generated over all the hashes of its children and only 1 hash if pushed to Cryptowerk and subsequently the blockchains of your choosing.
Here we have an example that will work with the default configuration of gatsby new
$ yarn add gatsby-plugin-cryptowerk-blockchain
Quick start
- Signup for a Cryptowerk account
Get free developer account: https://developers.cryptowerk.com/platform/portal/register.html?p=Trial
- Add credentials to a .env file, which you won't commit, or set the environment variable before running
gatsby build
// .env.production
CRYPTOWERK_APIKEYS=XXX
- Add the following to your project's gatsby-config.js file:
// gatsby-config.js
require('dotenv').config({
path: `.env.${process.env.NODE_ENV}`,
})
....
module.exports = {
plugins: [
{
resolve: `gatsby-plugin-cryptowerk-blockchain`, // add to bottom of plugins list after all data has been written to public folder
options: { // For sealing you need the API Key and API Credential for your Cryptowerk.com account.
apiKey: process.env.CRYPTOWERK_APIKEYS, // Concatenation of the API key and secret separated by a space.
hashoutputfile: './public/hashtree.json', // Optional hash tree will be stored to this file
outputfile: './public/cryptowerk_seal.json' // Where do you want the seal to be stored?
}
},
],
};
Feedback
This is the very first version of the plugin and isn't yet officially supported. Please leave all your feedback in GitHub issues 😊
TODO A future version will:
- pass Cryptowerk ALL of the leaf level hashes from Gatsby's public folder
- generate a balance merkel tree with a single root hash that
- write the root hash as a transaction to one or more blockchains.
- Cryptowerk Seals are created for each file enabling data integrity to be verified quickly.