DMBRB stands for Decentralized Market for Buying and Renting Books.
The purpose of this project is to demonstrate the possibility of upgrading the smart-contracts written using Solidity language. For this purpose are used the pattern that separates functionality of the program into three types of smart-contracts:
- Storage - contains the data
- Controller - executes bussiness logic of the program
- Proxy - contain the addresses of the actual version of controller (and maybe storage) contracts
The following tools I did used:
- Java 9 (v9.0.1)
- Gradle (v4.3.1)
- Atom and/or Remix IDE
- Solc (solidity compiler, v0.4.19+commit.c4cbbb05.Linux.g++)
- Truffle (v4.0.3)
- Web3j (v3.2.0)
- Testrpc (v4.1.3)
First of all, storage contracts were fully rewritten. The idea about storage was taken from ChronoBank project. Now all data stored in Storage, but organized in "crates". Access to the data is regulated by AccessManager.
Such as all data organized in "crates", the crates-contracts were created for it's managing.
Proxy contract already keeping not only the address of controller but also the addresses of "crates" and Storage contract.
You should have Java, Gradle, Git and Testrpc. After installation, you need to clone this repository:
git clone https://github.com/finr1r/DMBRB.git
And run the tests:
gradle test