Our Team has been trying to connect to the actual GUNDB peers for true decentralized experience but have been failing, yes that means till the time data is locally stored on developer's device in specific directory where aveon is running.Send HELP!!
Current Javascript version of Aveon will be deprecated once the team notices a stability with Python version.We will try to make it cross platform so Python,Javascript and other devs can use it too :)
- 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 GunDB, 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 GunDB 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 GunDB 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 GUNDB 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. - GunDb network allows distribution of User-Credentials in a
CentralizedDecentralized Manner.
- Initial folder includes the server.js file which is the main code initially built.
- Package folder includes an empty file at the moment and all the developement for npm package version of this system will take place in Package folder.
- 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 gun
npm install crypto-js
Lets see how we can run the backend now?
-
index.js: main code file where all the functionalities are being built.
-
test.js: test file which imports index.js and is testing its RegisterUser Function.
-
logintest.js: another test file which imports index.js and is testing its LoginUser Function.
-
queryyy.js: just a GUNDB querying code which is used to check documents by entering respective URK or UAK.
-
package.json: package file created after npm init.
-
updatetest.js: file which tests functionality of Update functions.
-
user_relations.js: file which tests functionality of adding user relation function.
-
fetch_relations.js: file which tests functionality of fetching the user relation function.
-
mdt-test.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 after you set parameters for registering function in test.js file and then getting the encrypted CAT from the terminal, passing it to logintest.js and testing login function.
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]
- Cheers to Mr Mark Nadal @amark for creating such a wonderful utility like GunDB.
- 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]