In today’s time, issues like Piracy, Censorship, Privacy and freedom of speech are concerning give the current state of things. Most of the existing ebooks stores like Kindle by Amazon or barnes & noble have heavy market monopoly which allows them to charge exhorbant Ebook prices as well as distribution rates from both the Author/Publisher as well as the User. These publishers also take a huge chunk of that amount, so the final amount which reaches the author is marginally less. Small-time authors are not even able to get proper publishing deals and are paid very little in terms of royalties. dbooks makes it very easy for anyone to upload their own ebooks on the market and at their own price.
Also due to high prices of such stores, most of the people, especially students have to look for other means of obtaining the books, and since there are no cheaper alternatives or maybe the books are exclusive, they unfortunately resort to Piracy. On our platform, all the purchased ebooks are stored in a library which can be accessed by the users, and the books are displayed on an in-built ebooks reader, which makes it easier for everyone to find all their books at one place and read them whenever they want.
Now, we achieve all the above mentioned points by the use of Blockchain technology. It’s allows for a secure peer to peer transaction and transfer system with no central authority or server. This makes sure no transactions are tracked and the privacy of the author as well as the user is ensured. Portis SDK helps in creation of wallets which are automatically synced with your portis account online to be synced with this project. By using it, we can skip many problematic aspects of the blockchain such as wallet creation using keywords or creating another wallet just for this project. All the Smart contracts (which is the business logic for the blockchain) are built using Solidity and Openzeppelin Contracts and is deployed on the Matic test Network.
We ran over a lot of challenges especially on the Blockchain part. As only one of us knows blockchain properly, it was a huge challenge to debug those issues in the backend when most of us didn’t even know about what those error’s meant. Not to mention, it was our first time to build this big of a project in such a short amount of time with limited knowledge about the technology being used.
The blockchain part was the most difficult, from creating the smart contracts to generating test tokens for development, everything went wrong at some point or the another. As soon as one of the errors was fixed, something other broke in it’s place. Creating custom smart contracts was complicated as it is but integration with tokens and stuff needed allowances which we had no idea about. We constantly ran into problems regarding Gas Fees. The deployment of everything on the Matic Networks was also something we constantly dealt with. Compilation of these on the testnet had other set of issues on it’s own. Creating forms using react-components from drizzle and truffle such as ContractData and ContractForms was also very cumbersome.
Since there are many limitations of using the blockchain technology, there were many parts of our project which we initially thought of implementing but had to be scrapped either due to time constraints or skill capacity, or simply due to lack of knowledge in this particular field.
We also faced issues due to it being a large project with lot of files, such as accidental deleting of already completed files, react related problems or npm installation errors.
Discussion