Whenever you set up a local testnet node or run nodeos on your home computer, you are creating a new EOS chain. What matters is how you choose to connect it to other nodes to decentralise the system.
If you want a private blockchain for, say, your office building, then you would set up several instances of nodeos in the office and connect them to each ...
System tables are not (yet) well documented. You have to browse the source code.
E.g. for voters you will find table eosio voters here:
cleos -u https://eu.eosdac.io get table eosio eosio voters will return the first rows.
In [producer_pay.cpp], you'll find:
const int64_t min_activated_stake = 150'000'000'0000;
You'll want to either alter that when loading the contracts, or just issue tokens to some accounts and ensure that enough votes (150 million) have been cast to pass this threshold.
Any event (action) that occurs on an eosio chain is at least a part of a transaction. The transactions are sent to a node that either belongs directly to a block producer, or will be forwarded to one. When sending transactions, resources are used up and can not be reused for 24 hours. These are CPU and NET bandwidth, and possibly RAM. In order to access ...
The nodes cannot communicate with each other directly but both the nodes can communicate with the chain or genesis node. you have to just add IP and port of the genesis node into the -p2p-peer-address field of .conf file of the node.
You have two options two read any table (whether system table or table of another contract) by connecting to a public node:
cleos get table call: https://developers.eos.io/eosio-cleos/reference#cleos-get-table
rcp api get_table_rows call https://developers.eos.io/eosio-nodeos/reference#get_table_rows