D-Ledger is a decentralized application (dApp) created to learn and demonstrate the capabilities of the Internet Computer (IC) blockchain. This application simulates a simple banking system where users can top-up, withdraw, and check their balance.
The Internet Computer is a blockchain that runs at web speed with unbounded capacity. It aims to extend the functionality of the public internet so that it can host backend software, transforming it into a global compute platform. Key features include:
- Canisters: Smart contracts on the Internet Computer that combine code and state.
- Cycles: The fuel that powers computation in the Internet Computer.
- Motoko: A programming language designed for the Internet Computer.
DFX is the command-line tool used to manage, deploy, and interact with canisters on the Internet Computer. Key commands include:
dfx start
: Starts the local replica.dfx new <project-name>
: Creates a new project.dfx deploy
: Deploys the canisters.dfx canister call <canister-name> <method-name>
: Calls a method on a canister.
To learn more before you start working with dbank2
, see the following documentation available online:
- Top-Up: Allows users to add funds to their account.
- Withdraw: Enables users to withdraw funds from their account, ensuring the balance does not go negative.
- Check Balance: Users can query their current balance at any time.
- Compound Interest: The balance compounds over time, simulating interest accrual.
The backend canister is written in Motoko and manages the core banking operations: topping up, withdrawing, checking the balance, and compounding interest.
The frontend is a simple HTML page with a form for user interactions and JavaScript for handling user input and communicating with the backend.
If you want to test your project locally, you can use the following commands:
- Starts the replica, running in the background
dfx start --background
- Deploys your canisters to the replica and generates your candid interface
dfx deploy
- If you have made changes to your backend canister, you can generate a new candid interface with
npm run generate
at any time. This is recommended before starting the frontend development server, and will be run automatically any time you run dfx deploy
- Start a development server with
npm start
Which will start a server at http://localhost:8080
, proxying API requests to the replica at port 4943.
npm start
Which will start a server at http://localhost:8080
, proxying API requests to the replica at port 4943.