Skip to content

Provehance/icp-provehance-backend

Repository files navigation

Provehance on Azle ICP ♾️

Azle helps you to build secure decentralized/replicated servers in TypeScript or JavaScript on ICP. The current replication factor is 13-40 times.

For more documentation please see The Azle Book.

Please remember that Azle is in beta and thus it may have unknown security vulnerabilities due to the following:

  • Azle is built with various software packages that have not yet reached maturity
  • Azle does not yet have multiple independent security reviews/audits
  • Azle does not yet have many live, successful, continuously operating applications deployed to ICP

Installation

Windows is only supported through a Linux virtual environment of some kind, such as WSL

On Ubuntu/WSL:

sudo apt-get install podman

On Mac:

brew install podman

It's recommended to use nvm and Node.js 20:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Restart your terminal and then run:

nvm install 20

Check that the installation went smoothly by looking for clean output from the following command:

node --version

Install the dfx command line tools for managing ICP applications:

DFX_VERSION=0.16.1 sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"

Check that the installation went smoothly by looking for clean output from the following command:

dfx --version

If after trying to run dfx --version you encounter an error such as dfx: command not found, you might need to add $HOME/bin to your path. Here's an example of doing this in your .bashrc:

echo 'export PATH="$PATH:$HOME/bin"' >> "$HOME/.bashrc"

Deployment

cd icp-provehance-backend

npm install

dfx start --clean --host 127.0.0.1:8000

In a separate terminal in the icp-provehance-backend directory:

dfx deploy

If you are building an HTTP-based canister and would like your canister to autoreload on file changes (DO NOT deploy to mainnet with autoreload enabled):

AZLE_AUTORELOAD=true dfx deploy

If you have problems deploying see Common deployment issues.

View your frontend in a web browser at http://[canisterId].localhost:8000.

To obtain your application's [canisterId]:

dfx canister id backend

Communicate with your canister using any HTTP client library, for example using curl:

curl http://[canisterId].localhost:8000/db
curl -X POST -H "Content-Type: application/json" -d "{ \"hello\": \"world\" }" http://[canisterId].localhost:8000/db/update

Important

The server is also deployed on the mainnet at:

https://t2dv7-caaaa-aaaak-afopa-cai.raw.icp0.io

However, the "/web2/accounts" and "/web2/transactions" routes that work in localhost don't work in mainnet due to ICP's technical limitations.

An issue have been open by an Azle mentor: https://forum.dfinity.org/t/tcp-connect-error-network-is-unreachable/28041

About

Provehance backend using ICP Network for the deployement.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published