- **a nation** is a topology network of nodes town that share the same fundamental rules (engrave into a common blockchain).
- **a town** is a physical installation node of a machine (linux server) plug into a LAN network (a telecom box NAT conf) accessible into internet 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 an alis (humanly understandnable) that allow a member to proof that he owns data. Can be anonymous but all his actions are store into a blockchain of reputation.
- **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.
- **a git apxtrib** 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.
Each town (instance) is accessible with an anonymlous DNS https://apxtrib.crabdance.com where the IP adresse is update when elected town's IP to register a new block into the blockchain (each 10minutes).
You will find anything to understand how it works under the wood. Feel free to ask question, comment to improve the code. If you need to debug or you want to add a main feature setup your machine as local (no exchange with the blockchain)
- [nationchains]() the blockchain and social contracts between mpayor, druids and pagans.
- [package.json and tribes/townconf.js]() setup and convention rules: eslint, unit test, multi-lang, header
- [middleware/route/Models]() restfullapi logical from routes to middleware to models to datamapper and result res.status(http code).json({data,info,moreinfo})
- [accessrights]() Access right definition on object (Object,...)
- [Odmdb.js]() convention for object descriptor manager to index, search, create, update, delete item of an Object collections (to simplify CRUD actions for Models)
- [Pagans.js]() decentralized and anonymous publicKey for a pagan based on PGP with accessright onto other objects. Authentification process and localStorage management of 24 hours JWT. Login/psw/email.
- [Tribes.js]() A Druid space to host a web space.
- [Tags.js]() Event trackers to log any usefull event that can be used into sodial contracts
- [Messages.js]() Notification (delete after read) and message between any interactions concerning pagans (1 to many or 1 to 1), trig by social contract or by a pagan
- Setup process to review to simplify Town setup dev and setup prod that create 1 tribe with name town, with 1 pagan set with the role of druid of the tribe and mayor of the town.
- Decentralized social Data model based on schema.org + data type definition and integrity check + metadata
- GUI for mayor to create new tribe and manage druid and payment space (based on bitcoin wallet)
- GUI for druid to manage space storage (publish a web site, manage media storage)
- Plugins process to share tribe route / Model for specific app
- Decentralized social Contracts nationschains in socialworld/contracts list of contracts