Git Product home page Git Product logo

klyn74r / apollo Goto Github PK

View Code? Open in Web Editor NEW
3.0 0.0 2.0 5.23 MB

CLI and web interface to interact with your Klyntar infrastructure!πŸ™

Home Page: https://mastering.klyntar.org/beginning/apollo

License: Apache License 2.0

Dockerfile 0.06% JavaScript 32.34% Shell 1.70% Python 0.43% Go 12.19% C++ 9.46% C 3.10% Rust 0.32% TypeScript 4.13% HTML 0.03% EJS 23.63% CSS 12.61%
cli repl wallet klyntar klyn74r crypto controller web

apollo's Introduction


πŸ“– Content



⚑ Short intro


We're happy to present you Apollo - our powerful CLI & UI tool to control your KLYNTAR infrastructure. With this tool you can do everything - use it as wallet, interact with decentralized services, control your Unobtanium sources, deep dive into Cryptoland-our amazing collection of crypto algorithms available on KLYNTAR.



πŸ—οΈ How to build


As you've seen, KLYNTAR is in symbiotic relationship with other blockchains. By running different nodes of other projects, working with tools required by them, the most auful & irritating problem was problem with initial setup - misconfigs, old docs, semver mistakes, nightly versions and so on. That's why, we've prepared docker images to allow you to be sure that you'll have 100% succesful setup. So,let's start πŸš€

NOTE

We assume that you have Docker on the board. You can install Docker for Linux & Windows & Mac here

klyntar@apollo:~# docker -v
Docker version 20.10.14, build a224086



Download the image

We present you our first image klyntar/all_in_one. This is universal image with preinstalled Node.js, Go , Python and some tools like pnpm , node-gyp, git and so on. We've created it to save your time and nervous system. This is the base layer for all our Dockerfiles(at least for core and Apollo). The aproximate compressed size is 606M. Also, in our repository KlyntarBaseImages you can find the sources of all base-layer Dockerfiles, so you can clone and build it yourself or find the bash build script and so through the process to install requirements to your host machine. But anyway,we recomend you to use containers.

docker pull klyntar/all_in_one@sha256:dff001a9cd3da6328c504b52ed8a5748c47d23219feae220930dac1c1981cfe7



Run container

We also recomend you to make port forwarding at least for default Apollo port 9691

NOTE

This is the most default & simple way. If you need,you can manually do this with more advanced steps e.g. using volumes,set user and so on

docker run -dtp 9691:9691 --name test_kly klyntar/all_in_one@sha256:dff001a9cd3da6328c504b52ed8a5748c47d23219feae220930dac1c1981cfe7



Final

Go into container to root dir

docker exec -ti test_kly bash

# Inside container

cd ~

Clone Apollo repository

git clone https://github.com/KLYN74R/Apollo.git

cd Apollo

Finally,run the only one command

pnpm run build

Now take a rest and see the building process. It may take some minutes,but you're free from self-install tons of libs,dependencies and walking among dirs


The signs that build was succesful are messages to console like this



...and this



Now try to run. You should see the following





βš™οΈ Modularity


Working with different "hacking" tools,I've get the experience of so called 'best practises' of how to build real powerful tool. That's why, Apollo(as KLYNTAR) will be very modular. Just now,you have three ways to improve Apollo behaviour by loading modules to KLY_Modules, KLY_ServicesAPI and KLY_WorkflowsAPI


KLY_Modules

Directory for your external modules. This might be extra useful commands. Might be written by you or any other 3rd party. Must contain 2 directories cli(contains everything for commands in CLI) and ui(directory with everything for UI in browser). Soon we'll make a tutorial of HOWTO write modules for Apollo.

Each directory-is typically Git repository to allow you to easily update different modules independently if you need and swap versions. Moreover,soon you'll also have an amazing ability to verify authors cryptographically - via code signing. By having hash of repository you can verify authority and be sure that code is original using different crypto features like multisig or post-quantum cryptography,social staking and so on. We describe it in Basic Security in our MasteringKlyntar book.



  • CLI part

In CLI extra modules looks like ordinary commands. To allow your users to differ them, please, give them original prefix or make a single command with repository name and hide commands to subcommands

  • UI part

If module also has a UI part(which is often the case), then you'll have ability to visit:

http(s)://<your_interface>:<port>/modules

to find there the entry point to your module.


Summarizing this,your directories tree on these levels should look like this

Apollo
β”‚     
β”‚   
└───KLY_Modules
β”‚   β”‚   
β”‚   β”‚
β”‚   β”‚   
β”‚   └───init(default module,the entry point for the other)
β”‚   β”‚    β”‚   
β”‚   β”‚    │───cli(directory for files to improve CLI)
β”‚   β”‚    β”‚   β”‚
β”‚   β”‚    β”‚   └───init.js 
β”‚   β”‚    β”‚
β”‚   β”‚    └───ui(directory for files to improve UI)
β”‚   β”‚        β”‚
β”‚   β”‚        │───routes.js
β”‚   β”‚        │───templates(.ejs files)
β”‚   β”‚        β”‚     └─...
β”‚   β”‚        │───configs.json
β”‚   β”‚        └───...
β”‚   β”‚   
β”‚   β”‚
β”‚   └───your_custom_module
β”‚        β”‚   
β”‚        │───cli(directory for files to improve CLI)
β”‚        β”‚    β”‚   
β”‚        β”‚    └───init.js
β”‚        β”‚
β”‚        └───ui(directory for files to improve UI)
β”‚            β”‚
β”‚            │───routes.js
β”‚            │───templates(.ejs files)
β”‚            β”‚     └─...
β”‚            │───configs.json
β”‚            └───...
β”‚
β”‚
└───KLY_ServicesAPI
    └───...

To update the repository with module go to appropriate directory KLY_Modules/<your_module> and pull changes



KLY_ServicesAPI


ServiceAPI - directory with API repositories to interact with the scope of service runned on Klyntar. Imagine if all smart contracts on ETH will have a unique design in your wallet, separate page with all available features specific to contract. Since we have wider power, we also have so complicated way to improve abilities of your Apollo instance.


The same principle works for the services API. Each subdirectory - it's a repository. To check available services API go to

http(s)://<your_interface>:<port>/services



KLY_WorkflowsAPI


WorkflowsAPI - directory with API repositories to interact with symbiotes on Klyntar. Insofar as they can use different workflows(thanksfully to Mutations principle),we need to make possible to use appropriate algorithms,build right events to send to symbiotes and use other specific features like traffic over TOR or threshold signatures. Imagine if you'll have ability to control your Bitcoin, Solana, Avalanche, Cosmos assets(native coins,tokens,etc.), execute smart contracts, make delegations using only one instrument. Yes,this is what Apollo do.


The same principle as for services API. Each subdirectory - it's a repository in this directory. To check your symbiotes and how to interact with them go to

http(s)://<your_interface>:<port>/symbiotes



πŸ€“ Advice


Follow us to get the news & updates ASAP. Discuss, share ideas, advices, help newbies to make our community more powerful.We're happy to involve new members to KLY community 😊







πŸ“šDocs

Read the docs here to find out more


πŸ‡¬πŸ‡§
πŸ‡·πŸ‡Ί

apollo's People

Contributors

vladchernenko avatar

Stargazers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.