Skip to content

Archigan1/Aveon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOTE:

We are still in a beta program

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 :)

Content

  • 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

Gitter

Aveon

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.

Purpose

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?

Features

  1. Scattered Users:

    User Credentials are distributed as unique Documents accross the GunDB Network.

  2. CAT will Login:

    No Cookies,Remember Me or Login input fields but the login part is completely seamless and secured with ClientAccessTokens[CAT] unique to each user.

  3. Distinctive Locks:

    Every piece of user credential and every access key point to useraccounts are encrypted with keys and connected to each user uniquely.

  4. No CounterSpies:

    Our backend and frontend code will just be a intermediary link between Client and GunDB Network, NO SPYWARES INCLUDED!

  5. ACCESS DENIED!!:

    To login into someone's account, you dont need user's credentials but you actually need to manipulate the unique CAT for each account.

  6. NO CENTRAL MESS:

    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.

  7. Secure The package:

    URK and MDT tokens are supposed to be stored in a secure place by the user.

But... How does it work?

b61466cc462bf5a13fef21ef40b710df

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 personal data **credentials**,used for accessing credentials & relations purpose
  • URK stands for UserRecoveryKey and is the actual key linked uniquely linked to each user on the network,used for recovery purpose.
  • CAT stands for User ClientAccessToken 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 remembering their password or anything.
  • GunDb network allows distribution of User-Credentials in a Centralized Decentralized Manner.

1. General System Scheme:

20220414_150137

2. Component Scheme:

struuuuaaaa

TODOS [Will be updated everytime a task is completed or has been created]

Workspace: Samples folder

2] Build a sample app with Aveon's Auth Functions.

Getting Started

File Structure:

  • 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.

For developers who want to straight away use our NPM Package, kindly checkout below sources:

For Contributors who are gonna contribute to the NPM Package
[How to run NPM package code for developement]:

TOOLS

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

Packages

npm install express
npm install dotenv
npm install uuid
npm install gun
npm install crypto-js

WHAT THE CODE?!

Lets see how we can run the backend now?

File Structure["Package" folder]:

  • 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.

Running the code:

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

Future Goals for the Project

  • Our Auth Tools are already in beta and we will soon be expanding for availability of tools which would allow diverse data storage.

Contributions

  • Kindly refer to CONTRIBUTIONS file on how one can contribute to the project.

Support

Acknowledgements:

  • 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.

Reach out to me:

It is my humble request to all the developers using the package to please contribute and improvise this package if needed.

Thank you.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%