Table of Contents
The Blockchain serves as a journal of user-signed instructions that become a binding agreement as soon as they are included into a block. After inclusion into a block, the agreements are stored indefinitely by means of a hash-linked-list (the Blockchain).
A witness get enough votes and became a block producer (a.k.a. active witness).
Block Producer or Active Witness (belongs to a voted-in witness and is configured with correct key)
A witness node would be a full-history node, and each witness validates a transaction and broadcasts it. Witness nodes provide the complete history and preserve it as a failsafe.
Witnesses can be categorized into two groups that would be determined how much votes they received. If a witness gets enough votes, the witness becomes an active witness and can produce block(s). Therefore, we call active witnesses “Block Producers”.
Block Producer (a.k.a. active witness node) belongs to a voted-in witness and is configured with correct key. Block producers are validating signatures and timestamping transactions by including them in a block and broadcast it when they get their turn “time slot”. Each time, block producers produce a block, they get paid for their services.
Non-Block producer (a.k.a. standby witness node) is either a not-voted-in witness or a voted-in witness with a different key. If it gets enough votes then it’s an active witness.
To generate a default config file: First, delete the current directory defined by your
—data-dirswitch, then restart
witness_node. A new config.ini file will be generated in that directory.
the above delete will also delete the
/blockchain folder, so perhaps better to just locate the file fist, remove it and restart. Most of the parameters in the config have comments with descriptions and the default values
Consensus is the process by which a community comes to a universally recognized, unambiguous agreement on a piece of information. In the context of blockchains consensus means agreement about the validity rules for transactions, and the order in which they have been observed by the blockchain. This ultimately results in an agreement about the state of a database that is build deterministically from the those validity rules and the sequence of transactions.
Docker is meant for node operators. It makes it easier to deploy a new node and still allows configuration. I recommend mentioning it because docker is a term to most operators. The Docker default config.ini is created when first launching the node. An example can be found in the /docker/ folder.
Elasticsearch is a search engine based on Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. (ref: wiki )
A “plugin” enables blockchain data to be stored in the elastic search database. A separate instruction guide exists in the -core/wiki. Once data is in ES database, it can be easily access through kibana (e.g. using kibana.bitshares.eu). Many libraries exist to read data from elastic search.
API Nodes (i.e., nodes with an open RPC port)
Nodes with Full History (a.k.a. full nodes)
Nodes with Partial History
Seed Nodes (i.e., nodes with an open P2P port)
Block Producing Nodes
Block producer or Active Witness Node (belongs to a voted-in witness and is configured with correct key)
Standby Witness Node (either a not-voted-in witness, or a voted-in witness with different key)
A plugin is a software component that adds a specific feature to an existing computer program. When a program supports plug-ins, it enables customization. (ref: wiki )
Seed nodes are the first nodes of the network.It allows other nodes to get started by connecting to them.
In BitShares, a seed node is a node that accept incoming P2P connection. Its address is hard coded in the program, so when a new node starts, it will connect to the seed nodes by default. Every node (including seed nodes) tells the connected nodes where other nodes are, so all nodes can connect to each other.