Skip to content

SEP-G5/Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blockchain for Bikes - Backend

We are building an application for trading bicycles, by utilizing the blockchain technology. We also plan to build a client application where the users can do transactions such as buying or selling a bicycle. We want to use a combination of technologies that all teammates have experience working on while keeping an interesting project that is technologically challenging.

In this system, there are two components, frontend and backend.

Backend

In the backend we find the blockchain technology, along with an API for the frontend to query information about it. It also has a peer-to-peer (p2p) network, to provide a decentralized system. The blockchain technology has three parts to it. First we have transactions. They are were we put information about a bike transaction. These transactions are gathered up and put into blocks which is the next part. Blocks store information about a collection of transactions. To prevent malicious actions of trying to modify the history, these blocks are linked together, such that changing a block in the past, would also change all future blocks. This is what forms our last part, the blockchain. The blockchain is simply a collection of blocks, linked together.

Build Instructions

This program is written in rust. You can install it here.

Required Packages

To build the project you might first need some packages.

On Ubuntu you need:

apt install openssl libssl-dev pkg-config

Note; due to a package, rust nightly is required. Enable it with:

rustup default nightly
rustup update && cargo update

For more information, see here.

Building

To run the program.

cargo run

Run the tests.

cargo test -- --nocapture

To build with only compiler frontend.

cargo check

Docker

Build

docker build -t backend-blockchain .

Run

docker run -d -p 35010:35010 -p 8000:8000 backend-blockchain

Roadmap

Here is an early estimate of our roadmap. They are high level blocks of work, which we will break down into tasks and work on them in week-long sprints. img

Releases

No releases published

Packages

No packages published