App to Generate and verify certificates. Made on top of MultiChain (a permissioned fork of Bitcoin). Metadata about the certificate owner is saved on multichain in form of streams. Used TypeScript for developing the app with Ejs as the view engine.
You need to have 1 or more running multichain nodes to test the application. To set up a node follow this. Also, initialize a stream and keep the creation txn id.
git clone https://github.com/SD170/multichain-certificate-manager
On the project root folder, run:
npm install
We have used MongoDB as our database. So, in order to connect to the local database, we'll need 3 values, and we've kept them in config.env in the path- /config:
- run
cat .multichain/"chain name"/multichain.conf
to find out RPC_USER & RPC_PASSWORD. - run
cat .multichain/"chain name"/params.dat
to find out the RPC_PORT. - RPC_PORT(default:
4256
) port is different than the created chain's network port(default:4257
). - Create a file named config.env inside the folder, /config.
- Add 3 env variables eg:
RPC_HOST=127.0.0.1(localhost) RPC_PORT=<your RPC_PORT> RPC_USER=<your RPC_USER> RPC_PASSWORD=<your RPC_PASSWORD> MULTICHAIN_CERT_STREAM_TXN=<tream creation transaction's txn id>
From the root folder, start the project by running:
npm start
- TypeScript - Dev scripting language
- node.js - Runtive env
- multichain-node - A wrapper for Multichain's JSON RPC api
- multer and pdfkit - For uploading and generating required files
- EJS - For templating html