Skip to content

Commit

Permalink
Improving network descriptions and other minor adjustments
Browse files Browse the repository at this point in the history
  • Loading branch information
vncoelho committed May 14, 2019
1 parent b58271e commit abe1f8b
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
21 changes: 17 additions & 4 deletions sections/02_Network.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,34 @@ For example, technically speaking, a blockchain can be seen as a data structure
As a network protocol, it is necessary to clearly define how these agents may interact and exchange information.

Blockchain networks are usually composed by full nodes and lightweight nodes.
Full nodes persist and validate the whole blockchain, being able to provide all kinds of informations to other nodes, such as lightweight nodes.
Full nodes persist and validate the whole blockchain, being able to provide all kinds of information to other nodes, such as lightweight nodes.
Lightweight nodes are usually linked to user wallets, that only have limited blockchain information and depend on full nodes to have access to detailed blockchain information (in order to validate transactions, for example).
A broader view of the topology can be seen as an interaction between agents, forming the pillars of a multi-agent system [@MAS:xxx].
The possibility of deploying agents with different abilities into the network is the core of the Neo Ecosystem.

A special type of node is capable of **generating** new blocks on the blockchain, which is the bookkeeper node^[On Bitcoin network, these nodes are called Miners (due to proof-of-work paradigm), however on Neo no mining process is required to achieve consensus].
On Neo network, these bookkeeper nodes are also called Consensus Nodes, which are ellected by means of public voting and are capable of systematically proposing new blocks (by ordering and validating pending network transactions).
On Neo network, these bookkeeper nodes are also called Consensus Nodes, which are elected by means of public voting and are capable of systematically proposing new blocks (by ordering and validating pending network transactions).
Detailed information for Neo Consensus Protocol (called Delegated Byzantine Fault Tolerance) is presented on [Section @Sec:dBFT].

## Communication between nodes

Nodes communicate on Neo blockchain via two network protocols: peer-to-peer (P2P) and remote procedure call (RPC).
Peer-to-peer (P2P) communication between nodes is the core on fully distributed systems, such as Neo blockchain.

### P2P Protocol Specification

P2P commands can be found on [Neo Project](https://https://github.com/neo-project/neo) repository^[Developers can look directly on _neo/Network/P2P_ folder, while this section is a work on progress].

### Message compression

### Node Capabilities
TCP, UDP, WS

## Interacting with nodes

A trivial way for interacting with external world can be done by RPC's calls, which are API's natively implemented in the NEO core library

### Plugins

### RPC Protocol Specification

RPC commands can be found on [Neo Project](https://https://github.com/neo-project/neo) repository and also [Neo Plugins](https://https://github.com/neo-project/neo-plugins).
Expand Down Expand Up @@ -80,4 +93,4 @@ RpcNep5Tracker plugin (`RpcNep5Tracker/RpcNep5Tracker.cs`):

If you feel some information is still missing here, please refer to the [Official Neo API Documentation](https://docs.neo.org/en-us/node/cli/latest-version/api.html).

## Assets and Smart Contracts
#### RPC Protocol Specification
8 changes: 7 additions & 1 deletion sections/05_Assets.md
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
# Neo Assets: Global UTXO vs Account Models vs Tokens
# Neo Assets: Account Models vs Tokens

## Account Models

## Tokens

## Native Contracts

0 comments on commit abe1f8b

Please sign in to comment.