## Astroport.ONE
# Bash Web3 playground
TiddlyWiki hosting, programmable distributed data layer protocol & "step-by-step" blockchains DApp over IPFS
![](https://ipfs.asycn.io/ipfs/QmWuR39JfNFzCRvocdTXqhdxVBd7YaGn12fkNVYNsWmMaD)
----
[![](https://ipfs.asycn.io/ipfs/QmNRGY44NnUwhAHeoXTnf31DxoMd84E8xwiBPywe8TQ8dE =360x)](https://qo-op.com)
----
Astroport.ONE is an educational web3 playground.
Choose a 0.01° sector. Provide an email to join this collaborative App. https://qo-op.com
----
[![](https://ipfs.asycn.io/ipfs/QmUtv5EtEQTDSrrZ9Va3XveXa2sJgMqou58NfMLm5tLpu3 =420x)](https://github.com/papiche/Astroport.ONE/blob/master/BOOTSTRAP/Readme.md)
________UPlanet contains 5 layers of nested keys_
----
Astroport.ONE adds "Boot Sectors" and PLAYERs datastorage into IPFS. It defines a primal key management system among IPFS nodes hosting TiddlyWiki on UPlanet sectors.
----
* Each TW can share Tiddlers with others on the same Umap and with other G1 Friends identified through Ğ1 web of trust.
* 20H12 process analyze key relations and operates data linking in "step by step" blockchains.
* ASTROBOT execute actions on specific Tag and interact with DUNITER blockchain and any App using ED25519 key addressing
----
Programmers can learn how to create Applications Templates on every derivated keys.
This "proof of concept" introduces an IPFS data layer on Earth anyone running Astroport.ONE can be part of.
----
Discovering IPFS is a mind blowing experience.
Content addressing and Public Key Infrastructure is replacing the old absolute path need with an infinite relative Information System
----
**Thanks to unique content and key addressing features Web3 has to offer, we are going to build a distributed information system.**
----
During this exploration, we'll discover key derivation, various sharing consensus and protocol validation procedures all through BASH scripts and other CLI tools in a P2P environment.
----
> Clone & Install [Astroport.ONE](https://github.com/papiche/Astroport.ONE)
```
## Consider creating a fork to submit your plugins
bash <(wget -qO- https://raw.githubusercontent.com/papiche/Astroport.ONE/master/install.sh)
```
----
>> **HACKING NOTE**
> * To explore VARIABLE relations and reverse engineer code
> ```cp ~/.zen/Astroport.ONE/search ~/.local/bin/```
> USE [```./search```](https://github.com/papiche/Astroport.ONE/blob/master/search)
----
## The BASH engine
----
### API server (1234)
This script runs the astroport daemon.
Based on netcat, it receives and sends minimal HTTP GET
#### Exploration
* [~/.zen/Astroport.ONE/12345.sh](https://github.com/papiche/Astroport.ONE/blob/master/12345.sh)
* [~/.zen/Astroport.ONE/API](https://github.com/papiche/Astroport.ONE/tree/master/API)
----
#### Explanation
This continuous running script is dedicated to receive, decode and execute API functions.
> TRY ONLINE : https://astroport.copylaradio.com
----
### SWARM engine (12345)
In order to communicate over IPFS, we settle for each NODE a self publish and discovery protocol.
[![](https://ipfs.asycn.io/ipfs/QmRoYQiktJRqgRW2BEUHP62UDeUumUApNZqd2SmZokVcwD =600x)](https://astroport.copylaradio.com/12345)
#### Exploration
[~/.zen/Astroport.ONE/_12345.sh](https://github.com/papiche/Astroport.ONE/blob/master/_12345.sh)
[~/.zen/Astroport.ONE/RUNTIME/NODE.refresh.sh](https://github.com/papiche/Astroport.ONE/blob/master/RUNTIME/NODE.refresh.sh)
----
#### Explanation
Each NODE is publishing self hosted data in ```~/.zen/tmp/IPFSNODEID``` directory. It regularly refresh ```~/.zen/tmp/swarm/``` to collect data from nodes connected through common bootstrap
![](https://ipfs.asycn.io/ipfs/QmTdRhZoDGuBcS3ovLPfh98onmRDZD2yDoYQg6SSj7c4hf)
----
### 20H12 runtime
In order to achieve blockchain next state evolution, every day each NODE runs various refresh tasks (best is based on real longitude).
#### Exploration
[~/.zen/Astroport.ONE/20h12.process.sh](https://github.com/papiche/Astroport.ONE/blob/master/20h12.process.sh)
[~/.zen/Astroport.ONE/RUNTIME/*](https://github.com/papiche/Astroport.ONE/blob/master/RUNTIME)
----
#### Explanation
During this period, Each NODE is scanning every local PLAYER account to detect key relations and apply various data engineering tasks.
Seek, Collect and Merge
* G1Voeu derivated keys and ASTROBOT actions programming
* Umap shared key management and DATA scraping
----
### ASTROBOT
DApp feeding Programs
* Update UPlanet & Neighbours TW's + :star: https://gchange.fr + https://park4night.com + https://youtube.com + https://OpenStreetMap.org + ... any wishes :smiley:
#### Exploration
[~/.zen/Astroport.ONE/ASTROBOT/G1CopierYoutube.sh](https://github.com/papiche/Astroport.ONE/blob/master/ASTROBOT/G1CopierYoutube.sh)
[~/.zen/Astroport.ONE/WWW/CopierYoutube](https://github.com/papiche/Astroport.ONE/blob/master/WWW/CopierYoutube)
----
## The TW Data Layer
PLAYER creates a cryptographic key pair using EMAIL
He receives ZenCard & AstroID, its pgp PIN protected TW credentials. QRCode scanning delegate Key operation through a Terminal.
----
![](https://ipfs.asycn.io/ipfs/Qmdgg4ANz2m1kE5HHNnbKWDXMB9o4sMBieaa4pFF27GQC9)
----
### UPlanet
In order to choose a "bloc 0" key, the planet is divided into 0.01° portions. This mesh will be used as anchors to define where TW is spreading data.
![](https://ipfs.asycn.io/ipfs/QmbPvgrtcWdV4PkpHZvZvAGL7ztuyqqr2UrS5GYr1J6YFC =480x)
https://qo-op.com
----
![](https://ipfs.asycn.io/ipfs/QmWfCsfo1muraPPagu5LWiCU77Wz2mWNwCt3jZq7gjXjkc =640x)
---
![Distributed Information System](https://ipfs.asycn.io/ipfs/QmPjmMSto3sJcX9Mo6zgfmnCqDBkdG9kqyHzmSGxYm2Mdw)
---
# "Knowledge" and "Know-how"
# in a Distributed Information System
---
### EXERCICES
* Explore the tools [keygen, jaklis, gpg, natools](https://forum.duniter.org/t/il-manque-une-tdc-a-notre-tdc/10500/22?u=frederic_renault)
* [Manipulate CLI "tiddlywiki](https://github.com/papiche/Astroport.ONE/blob/master/RUNTIME/VISA.new.sh#L361)" for read & write TW as database
* [_chain & _moats](https://github.com/papiche/Astroport.ONE/blob/master/RUNTIME/UPLANET.refresh.sh#L282) time stamping and signature the blockchain essentials (search)
* Extend [TW Plugin & Tiddlers](https://pad.p2p.legal/s/TW#)
---
* Introduce IA learning on TW RSS and G1Tag Apps
https://www.youtube.com/watch?v=kXuHxI5ZcG0
* Develop and Extend [Terminal TPE functions](https://forum.duniter.org/t/g1card-un-systeme-pour-g1terremarches/11575)
* Synchronize UPlanet UMaps on [Sun realtime](https://github.com/papiche/Astroport.ONE/blob/master/tools/time2solar.sh) in 24s compute time
---
* Play with Quadratic Voting system
https://git.p2p.legal/qo-op/G1FQ
* Extend [VOEUX.refresh](https://github.com/papiche/Astroport.ONE/blob/master/RUNTIME/VOEUX.refresh.sh) and [UPlanet.refresh](https://github.com/papiche/Astroport.ONE/blob/master/RUNTIME/UPLANET.refresh.sh) processes
* ... Imagine your own DApp ... Transpose key generation ...
---
## G1Station ♥BOX
Each NODE running Astroport.ONE can join the core boostrap list using its own personnal domain.
---
### DMZ & HTTPS PROXY
[![DMZ & HTTPS PROXY](https://ipfs.asycn.io/ipfs/Qmcb7P2BWd75mBrz9tfnsRYGop8r6fKtZJznvSHoVzM58u)](https://git.p2p.legal/STI/Astroport.ONE/src/branch/master/OpenPORTS.png)
---
### BooStrap ♥BOX port forward + "[nginx proxy manager](https://nginxproxymanager.com/)"
![](https://ipfs.asycn.io/ipfs/QmWzwL9fZKDGuqsvDjkA8v9sAcU4zQ4BvjKDRwnZQBT97y)
---
### WHAT & HOW TO INSTALL
![WHAT & HOW TO INSTALL](https://ipfs.asycn.io/ipfs/QmSD2tL5pgib9eQoFTABAas6SHamfZzZ749Sw8vQ4dRtSe)
support@qo-op.com