***a town** is a physical installation node of linux server plug into a LAN network (a telecom box NAT conf) accessible from a WAN network (domain name redirect to a town public IP).
***a tribe** has a unique name and is a space to host data to apply specific algo rule register at the creation of a tribe by a druid that respect the town rules
***a pagan** 'village farmer' is a unique identification create by anyone based on PGP (public/Private key) and a unique alias (for human) that allow a member to proof that he owns this identity. Can be anonymous but all his actions are store into a blockchain of reputation link to this unique ID.
***a druid** 'rules master' is a pagan that owned and defined rules of a tribe, he owns a domain name (DNS) to make it tribe's data accessible over the net. As pagan he can be anonymous, he is responsible of the tribe activities and can ban a pagan of his tribe. Any pagan become a druid when he decides to create a tribe by requesting a town mayor
***a mayor** is a owner of a physical machine, he is in charge to make a town node working (IP availibily) and accept to be part of a nation (rules of the blockchain nation).
***a contract** is an algorythme that is written into the blockchain and will be run if an action trig. Immutable contract are the one link to the blockchain. Any pagan/druid/major can defined a contract that apply to other pagans.
***the XTRIB coin** is the token that drive the blockchain, it materialises an exchange value and is a conterpoint
***a git apxtri** is a package ready to install a town by a mayor into a physical server that will be able to join a nation (mean accept thoses nation rules). You can also create a nation and stay alone or not. Then mayor will be able to host druid request to create tribe. Then druid will invite pagan to join his tribe...
All actors will have the same target to respect contracts and are free to leave or to stay into a nation, a town or a tribe. If a contract is not fair, then a nation, tribe, will be empty mean not creating value mean die. Only fair rules will survive but any try will rewards actor with XTRIB coin.
As it is decentralize organisation, a public address directory is replicated on each instance. We strongly recommand to use many reverse proxy to manage your public IP, never exposed your physical real IP in your country for anonymous target.
Each town (instance) is accessible with an anonymlous DNS https://apxtri.crabdance.com where the IP adresse is update when elected town's IP to register a new block into the blockchain (each 10minutes).
Pre-request: linux maxhine on a vps or physical machine ( we choose ubuntu server > 20, adapt this if you want to use something else).
To start you need to
* setup your network and for production a Domain Name server and a SSL certificat to your IP town
* setup your machine by installing smap, nginx, nvm, npm, node
As a mayor, you have to understand what you are doing, your numeric reputation is in the game. Always check sources before downloading any things. For dev use town name: **dev** and nation name :**ants**
### Network:
FOR DEV: you can just use local http:/dev-ants
```plaintext
$ sudo vim /etc/hosts # add 127.0.0.1 dev-ants
# Then after "Machine" install, open in your browser http://dev-ants
```
FOR PRODUCTION:
You need a domain name, to get a free one [http://ydns.io](http://ydns.io) create one like apxtri.ydns.io that content your IP adress the get your url update something like [https://ydns.io/hosts/update/Tl7FDQAETmQre312edztgsI](https://ydns.io/hosts/update/Tl7FDQAETmQre312edztgsI)[Uy](https://ydns.io/hosts/update/Tl7FDQAETmQre312edztgsIUy)
```plaintext
# Into your production machine
$ crontab -e
# add a line at the end to update your IP in case you have a dynamic WAN IP
$ ip -4 address # to get your (local) LAN IP of your server
```
Connect in your browser to your box (use your LAN IP and change last number by 1) Set as a dmz your local LAN IP and route (NAT) your internet trafic port 80 and 443 to this local IP.
This allow public access from internet to your DMZ local server. Think to use reverse proxy to be more anonymous. Contacts the community to help keeping your anonymous.
### Machine:
use a sudoer user and execute command line $, for security reason, do not use apxuser replace it by something not common (as admin, mayor,… use your nickname or pseudo)
# if nvm not found then cc paste 3 last line : export NVM_DIR= ....
# and recheck nvm --version
# Install node/npm/yarn in general follow the directiv they gave online to update properly the config
$ nvm install node
$ node --version #to check
$ npm install --global yarn
$ yarn --version
$ mkdir ~/apxtowns | mkdir ~/apxtowns/town-nation
#################################
# For dev #######################
#################################
# you only need to clone the apXtri project in ~/apxtowns/town-nation/tribes/adminapi/, this allow you push features to the maintainers of the project:
$ curl -L https://wall-ants.fr/cdn/setupdev.tar | tar -xvzf - -C ~/apxtowns/town-nation/
# As mayor you need to own this town as yours by conecting to https://dns
```
## apxtri Documentations
### Documentation for developper:
apxtri core : https://dns/cdn/apidoclist all endpoint and how authentification and data object management works.
* anonymous numeric identity with **pagan** object that allow a unique alias and publickey
* how a pagan can become a **person** for a trib (anonymously or not)
* how notification can cypher message between 2 pagans to communicate
* how a dev can create and host a tribe and a full project with api backend (documented with apidoc) and a webapp (in react, vue, angular, or a simple web page)
### Main end-point:
* Odmdb : data model management and accessright
* Pagans : numeric Identity with person to join a tribe
* Notifications: Exchange secure message between Pagans and machine (alert,…)
* Tribes; crud a tribe for a druid
* Trackings: nginx watching to manage security and ban unwanted user from ennemy's IP (non libertarian user)
* Middleware: to manage authentification and data accessright process.
* Blockchain: to synchronize common data and manage contracts between Pagans (as well than managing an api crypto wallet)
We are looking for dev (node.js, express.js, js, web developper), for translator, for trainner, for mayor and druid from any countries that want developp a business with their machine/bandwisdth annd a client community.