Skip to content

Code4life-Labs/hyperledger-real-estate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Manage Real Estates with Hyperledger

Đây là project về quản lý các thông tin bất động sản đơn giản với BlockChain sử dụng Hyperledger. Có thể thêm và chỉnh sửa thông tin về bất động sản, người sở hữu. Project sử dụng BlockChain với mục đích tăng độ tin cậy của hệ thống, dữ liệu cũng như là các thông tin được cung cấp bởi các bên.

Folder Hierachy

Cấu trúc thư mục đúng và đầy đủ nó sẽ như thế này

.
└── hyperledger-real-estate/
    ├── postman
    ├── chaincodes/
    │   └── real-estate
    ├── backend/
    │   ├── src/
    │   │   ├── assets
    │   │   ├── controllers
    │   │   ├── network/
    │   │   │   ├── utils/
    │   │   │   │   └── index.ts
    │   │   │   ├── blockchainNet.ts
    │   │   │   └── userOfNet.ts
    │   │   ├── routes
    │   │   ├── schemas
    │   │   ├── services
    │   │   ├── types
    │   │   ├── validations
    │   │   └── server.ts
    │   └── wallet
    ├── frontend/
    │   ├── public
    │   └── src/
    │       ├── apis
    │       ├── assets
    │       ├── components
    │       ├── layouts
    │       ├── objects
    │       ├── pages
    │       ├── states
    │       ├── themes
    │       ├── types
    │       ├── utils
    │       ├── App.tsx
    │       └── main.tsx
    └── network/
        ├── bin
        ├── builders/
        │   └── ccaas/
        │       └── bin
        ├── config
        ├── core/
        │   ├── addOrg3
        │   ├── configtx
        │   ├── docker
        │   ├── organizations
        │   ├── scripts
        │   ├── system-genesis-block
        │   ├── network.sh
        │   └── start.sh
        └── install-fabric.sh

Nên sau khi cài đặt xong mà thấy nó như thế này thì đã cài đặt đúng!!! Các folder trong network như là bin, buildersconfig nó chỉ xuất hiện khi đã được cài đặt, còn cài đặt như thế nào thì xem thêm ở bên dưới.

Lưu ý khi khởi động mạng và triển khai chaincode

  1. Trước khi chạy thì phải vào trong thư mục network trước.
cd network
  1. Để có thể chạy được thì buộc phải cài đầy đủ Docker Images và Binaries. Lưu ý là tải binaries thôi, docker images mình có rồi.
  2. Nếu như bị lỗi -bash: ./*.sh: Permission denied thì gõ lệnh
find ./ -type f -name "*.sh" -exec chmod +x {} \;
  1. Trong trường hợp mà phiên bản của docker image nó không sync với nhau thì dùng lệnh bên dưới để remove, sau khi remove xong thì tải lại docker images.
docker rmi -f $(docker images -aq)

Tải lại docker thì xem tiếp biên dưới. Khi mà tải xong các docker images cần thiết thì khi start net nó sẽ cài thêm một số docker images khác nữa, cứ để cho nó cài. Ngoài ra thì network nên được startup sau khi ứng dụng backend được khởi động.

Install

  1. File script để cài dockert images, binaries, fabric-samples. Trong repo thì nó có sẵn rồi, trong trường hợp không có hoặc lỡ tay xóa mất tiêu thì vào folder network rồi chạy lệnh
curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh
  1. Khi có được file install-fabric.sh thì tải binaries tương ứng
./install-fabric.sh binary
  1. Sau khi cài xong thì ổn rồi đó, giờ thì vào trong thư mục core để bắt đầu deploy NET, Channel và Chaincodes
cd core
./start.sh new
  1. Sau khi xanh lè hết thì bắt đầu thôi!!!

Start the project

  1. Khởi động API App trong folder NFT-Marketplace/backend
npm install
npm run dev
  1. Khởi động Client App trong folder NFT-Marketplace/frontend
npm install
npm run dev
  1. Nhớ khởi động chaincode trong NFT-Marketplace/frontend/network/core
./start.sh new

Dùng

./start.sh --help
hoặc
./start.sh -h

Để hiển thị hướng dẫn khởi động netword, deploy chaincode. Trong phần hướng dẫn thì có các examples để sử dụng.

Test API with PostMan

Trong folder postman có một file json của các requests về bất động sản cũng như là khởi tạo người dùng. Import file json vào trong postman để dùng nhanh. Các requests trong file này chỉ là tạm thời vì đang lưu username của user ở trong body để gửi về cho server thay vì là token.

Data

Trong thư mục root có một folder data, trong folder này sẽ chứa các dữ liệu mặc định ở trong cơ sở dữ liệu.