Skip to content

jay0x5/Aveon

Repository files navigation

NOTE:

We are still in a beta program

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 is now npm i aveonfs

Aveon

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.

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 IPFS 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 IPFS 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 IPFS 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.
  • IPFS network allows distribution of User-Credentials in a Centralized Decentralized Manner.

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

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 ipfshttpclient
npm install crypto-js

WHAT THE CODE?!

Lets see how we can run the code now?

File Structure["Package" folder]:

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

Running the code:

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

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:

  • 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