- Aveon
- Purpose
- Features
- How it works
- TODO
- Getting Started
- File Structure
- Documentation for how to use npm package
- Documentation for how to run open sourced code
- Future Goals
- Contributions
- Support
- Acknowledgement
- Reach out
- End
Aveon is an open sourced,decentralized DataBase & Secure Auth provider for Web3 Development. Based on IPFS, Aveon aims to provide goodness of decentralization and high security with minimal code setup for authentication purposes like Register,Login,etc.
The purpose of starting this project is to apply the concept of decentralization without actually using complex blockchains and solidity and stuff,To study decentralization and speculate the capacity of P2P networks and of course to provide a tool with better security than standard databases like MySql,MongoDb,etc.
Basically to speculate if an easier and highly secure counterpart of blockchain is possible or not?
-
User Credentials are distributed as unique Documents accross the IPFS Network.
-
No Cookies,Remember Me or Login input fields but the login part is completely seamless and secured with ClientAccessTokens[CAT] unique to each user.
-
Every piece of user credential and every access key point to useraccounts are encrypted with keys and connected to each user uniquely.
-
Our backend and frontend code will just be a intermediary link between Client and IPFS Network, NO SPYWARES INCLUDED!
-
To login into someone's account, you dont need user's credentials but you actually need to manipulate the unique CAT for each account.
-
In a highly unlikely attempt of a credential breach into the network,since the person attempting the breach will need to have physical access to each user device to actually try to manipulate secured CAT and gain access.
-
URK and MDT tokens are supposed to be stored in a secure place by the user.
Well its quite simple, At the moment the whole system has 4 key components UAK,URK,CAT,MDT and of course the IPFS Network
- UAK stands for UserAccessKey and is the actual hash to access user
personaldata **credentials**,used for accessing credentials & relations purpose - URK stands for UserRecoveryKey and is the actual key
linkeduniquely linked to each user on the network,used for recovery purpose. - CAT stands for
UserClientAccessToken and is passed on to user and also holds many secrets like UAK,used for accessing UAK. - MDT stands for Multi Device Token and as the name suggests it is used to let user login to multiple devices without having to worry about
rememberingtheir password or anything. - IPFS network allows distribution of User-Credentials in a
CentralizedDecentralized Manner.
- Initial folder includes the server.js file which is the main code initially built.
- IPFS-IMPLEMENTATION folder includes main
index.js
and subordinate test files,this folder holds the codebase of Aveon which is implemented on IPFS. - GUNDB-IMPLEMENTATION folder includes main
index.js
and subordinate test files,this folder holds the codebase for deprecated GunDB implementation of Aveon. - Samples folder includes all the sample files.
- blog
- Github-Documentation
- NPM-Documentation
- Website Documentation soon!
For Contributors who are gonna contribute to the NPM Package
[How to run NPM package code for developement]:
Any Stable versions of NodeJS, I am using Node v16.13 The code is has been initially built and tested on Windows at the moment, Looking for someone who can handle the Linux Developement for this project
npm install express
npm install dotenv
npm install uuid
npm install ipfshttpclient
npm install crypto-js
Lets see how we can run the code now?
-
index.js: main code file where all the functionalities are being built.
-
register.js: test file which imports index.js and is testing its RegisterUser Function.
-
login.js: another test file which imports index.js and is testing its LoginUser Function.
-
package.json: package file created after npm init.
-
recovery.json: file which tests the functionality of recovering CAT tokens for users.
-
Update.js: file which tests functionality of Update functions.
-
Addrelations.js: file which tests functionality of adding user relation function.
-
FetchRelations.js: file which tests functionality of fetching the user relation function.
-
MDT.js: file which tests multi-device-token functionality.
For now, I think this is pretty straightforward without any code changes, you can run node filename.js.
For example: Set parameters for registering function in register.js file and then getting the encrypted CAT from the terminal, passing it to login.js and testing login function.In this way you run each method file locally and test it out :D
Please report any issues via "Issues" or reach out to me :D
- Our Auth Tools are already in beta and we will soon be expanding for availability of tools which would allow diverse data storage.
- Kindly refer to CONTRIBUTIONS file on how one can contribute to the project.
- If any assistance is required then please feel free to contact our team at [email protected]
- Potential contributors will be recognized as a part of the family.
- My Discord: Jay05#9214
- My twitter: https://twitter.com/Jay0x5
- My mail: [email protected]