Skip to content

Commit

Permalink
fix issues (neo-project#994)
Browse files Browse the repository at this point in the history
* fix issues

* follow up
  • Loading branch information
Celia18305 authored Feb 11, 2020
1 parent 41a9359 commit 515465a
Show file tree
Hide file tree
Showing 18 changed files with 161 additions and 168 deletions.
2 changes: 1 addition & 1 deletion docs/en-us/basic/technology/dbft.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ To counter these potential errors, a blockchain system is in need of an efficien

Proof-of-Work mechanism, employed by the Bitcoin, addresses this issue rather brilliantly. But it comes with an obvious price, i.e. significant electricity cost and energy consumption. Further, with Bitcoin’s existence, new blockchains must find different hashing algorithms, so as to prevent computational attacks from it. For example, Litecoin adopts SCRYPT, rather than Bitcoin’s SHA256.

Byzantine Fault Tolerance mechanism is a universal solution for distributed systems. NEO proposes dBFT (delegated Byzantine Fault Tolerance) consensus algorithm based on PBFT (Practical Byzantine Fault Tolerance) algorithm. Algorithm dBFT determines validator set according to real-time blockchain voting, which effectively enhances the effectiveness of the algorithm, bringing block time and transaction confirmation time savings. dBFT2.0 as an upgraded version was released in Mar. 2019, which improves robustness and safety by introducing 3-stage consensus as well as a recovery mechanism.
Byzantine Fault Tolerance mechanism is a universal solution for distributed systems. Neo proposes dBFT (delegated Byzantine Fault Tolerance) consensus algorithm based on PBFT (Practical Byzantine Fault Tolerance) algorithm. Algorithm dBFT determines validator set according to real-time blockchain voting, which effectively enhances the effectiveness of the algorithm, bringing block time and transaction confirmation time savings. dBFT2.0 as an upgraded version was released in Mar. 2019, which improves robustness and safety by introducing 3-stage consensus as well as a recovery mechanism.

## System Model

Expand Down
4 changes: 2 additions & 2 deletions docs/en-us/basic/technology/neovm.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Introduction

NeoVM is a lightweight virtual machine for executing NEO smart contracts. As the core component of NEO, NeoVM has Turing completeness and high consistency, which can implement arbitrary execution logic and ensure consistent execution results of any node in distributed network, providing strong support for decentralized applications.
NeoVM is a lightweight virtual machine for executing Neo smart contracts. As the core component of Neo, NeoVM has Turing completeness and high consistency, which can implement arbitrary execution logic and ensure consistent execution results of any node in distributed network, providing strong support for decentralized applications.

With the help of NeoCompiler, source code written in Java, C# or other high-level languages can be compiled into a unified NeoVM instruction set, thus achieving cross-platform. Also, it lowers the development threshold for enabling smart contract developers to participate in the application development in Neo ecosystem without learning a new development language.

Expand Down Expand Up @@ -41,7 +41,7 @@ In addition, the interoperation service layer also supports custom extensions an

### Execution Process

NEO supports multi-language smart contract development. NeoCompiler compiles multi-language smart contracts into unified avm bytecode files, which are then decoded and executed by NeoVM. Cross-platform compatibility are achieved with multi-language compliers and virtual machines.
Neo supports multi-language smart contract development. NeoCompiler compiles multi-language smart contracts into unified avm bytecode files, which are then decoded and executed by NeoVM. Cross-platform compatibility are achieved with multi-language compliers and virtual machines.

A complete execution process is as follows:

Expand Down
75 changes: 36 additions & 39 deletions docs/en-us/basic/whitepaper.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/en-us/node/cli/cli.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CLI Command Reference

Open the command line, navigate to the directory where Neo-CLI is located, and enter the following code to start the command line wallet (i.e. the NEO node).
Open the command line, navigate to the directory where Neo-CLI is located, and enter the following code to start the command line wallet (i.e. the Neo node).

`dotnet neo-cli.dll`

Expand Down Expand Up @@ -237,7 +237,7 @@ unclaimed gas: 0
>
> This command does not show the GAS that has been claimed. Use `list asset` instead.
On NEO3, The GAS in an account is claimed automatically every time when the number of NEO in the account changes.
On Neo3, The GAS in an account is claimed automatically every time when the number of Neo in the account changes.

### claim gas

Expand Down
48 changes: 24 additions & 24 deletions docs/en-us/node/cli/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,13 @@ If you want to access the RPC server via HTTPS, you need to set the domain name,

### Connecting the node to network

Neo-CLI connects to NEO main net by default. If you want to connect the node to test net, you need to replace the main net configuration files by the corresponding test net files (i.e. replace `config.json` and `protocol.json` under Neo-CLI root directory by `config.testnet.json` and `protocol.testnet.json`, respectively). For more information refer to [Main net and Test net](../../network/testnet.md).
Neo-CLI connects to Neo main net by default. If you want to connect the node to test net, you need to replace the main net configuration files by the corresponding test net files (i.e. replace `config.json` and `protocol.json` under Neo-CLI root directory by `config.testnet.json` and `protocol.testnet.json`, respectively). For more information refer to [Main net and Test net](../../network/testnet.md).

If you want to connect the node to your private net, refer to [Setting up Private Chain](../../network/private-chain/solo.md) to modify the file `protocol.json`.

## Installing plugins

Since NEO 2.9.0 some additional functionalities are individually encapsulated in plug-ins for the purpose of improving node security, stability, and flexibility. The user can select the desired extension functionality instead of invoking it with additional parameters every time starting neo-cli, thus avoiding many human errors and some tedious instructions such as opening a wallet and calling applicationlogs.
Since Neo 2.9.0 some additional functionalities are individually encapsulated in plug-ins for the purpose of improving node security, stability, and flexibility. The user can select the desired extension functionality instead of invoking it with additional parameters every time starting neo-cli, thus avoiding many human errors and some tedious instructions such as opening a wallet and calling applicationlogs.

### Downloading plugins from GitHub

Expand Down Expand Up @@ -115,19 +115,19 @@ Download the plugins you need from the following table.
href="https://github.com/neo-project/neo-plugins/releases/download/v2.10.3/RpcWallet.zip">RpcWallet</a>
</td>
<td>Provides wallet-specific RPC functionalities.</td>
<td><a href="../../reference/rpc/latest-version/api/claimgas.md">claimgas</a><br><a
href="../../reference/rpc/latest-version/api/dumpprivkey.md">dumpprivkey</a><br><a
href="../../reference/rpc/latest-version/api/getbalance.md">getbalance</a><br><a
href="../../reference/rpc/latest-version/api/getnewaddress.md">getnewaddress</a><br><a
href="../../reference/rpc/latest-version/api/getunclaimedgas.md">getunclaimedgas</a><br><a
href="../../reference/rpc/latest-version/api/getwalletheight.md">getwalletheight</a><br><a
href="../../reference/rpc/latest-version/api/importprivkey.md">importprivkey</a><br><a
href="../../reference/rpc/latest-version/api/listaddress.md">listaddress</a><br><a
href="../../reference/rpc/latest-version/api/sendfrom.md">sendfrom</a><br><a
href="../../reference/rpc/latest-version/api/sendmany.md">sendmany</a><br><a
href="../../reference/rpc/latest-version/api/sendtoaddress.md">sendtoaddress</a><br><a
href="../../reference/rpc/latest-version/api/invokefunction.md">invokefunction</a><br><a
href="../../reference/rpc/latest-version/api/invokescript.md">invokescript</a></td>
<td><a href="../../reference/rpc/latest-version/api/claimgas.html">claimgas</a><br><a
href="../../reference/rpc/latest-version/api/dumpprivkey.html">dumpprivkey</a><br><a
href="../../reference/rpc/latest-version/api/getbalance.html">getbalance</a><br><a
href="../../reference/rpc/latest-version/api/getnewaddress.html">getnewaddress</a><br><a
href="../../reference/rpc/latest-version/api/getunclaimedgas.html">getunclaimedgas</a><br><a
href="../../reference/rpc/latest-version/api/getwalletheight.html">getwalletheight</a><br><a
href="../../reference/rpc/latest-version/api/importprivkey.html">importprivkey</a><br><a
href="../../reference/rpc/latest-version/api/listaddress.html">listaddress</a><br><a
href="../../reference/rpc/latest-version/api/sendfrom.html">sendfrom</a><br><a
href="../../reference/rpc/latest-version/api/sendmany.html">sendmany</a><br><a
href="../../reference/rpc/latest-version/api/sendtoaddress.html">sendtoaddress</a><br><a
href="../../reference/rpc/latest-version/api/invokefunction.html">invokefunction</a><br><a
href="../../reference/rpc/latest-version/api/invokescript.html">invokescript</a></td>
<td>Mandatory</td>
</tr>
<tr>
Expand All @@ -151,18 +151,18 @@ Download the plugins you need from the following table.
href="https://github.com/neo-project/neo-plugins/releases/download/v2.10.3/RpcSystemAssetTracker.zip">RpcSystemAssetTracker</a>
</td>
<td>Enquiries the UTXO assets related information.</td>
<td><a href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.md">getunclaimed</a><br><a
href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.md">getclaimable</a><br><a
href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.md">getunspents</a></td>
<td><a href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.html">getunclaimed</a><br><a
href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.html">getclaimable</a><br><a
href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.html">getunspents</a></td>
<td>Recommended</td>
</tr>
<tr>
<td><a
href="https://github.com/neo-project/neo-plugins/releases/download/v2.10.3/RpcNep5Tracker.zip">RpcNep5Tracker</a>
</td>
<td>Enquiries NEP-5 balance and transactions history of accounts through RPC</td>
<td><a href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.md">getnep5balances</a><br><a
href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.md">getnep5transfers</a></td>
<td><a href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.html">getnep5balances</a><br><a
href="../../reference/rpc/latest-version/api/getmetricblocktimestamp.html">getnep5transfers</a></td>
<td>Recommended</td>
</tr>
<tr>
Expand Down Expand Up @@ -202,11 +202,11 @@ After installation, restart Neo-CLI for the plugin to take effect.

## Synchronizing blockchain data

The client must be fully synchronized before use. In order to speed up network synchronization you can download an offline package of the blockchain data up to a certain block height. This means the client will only need to sync the additional blocks from the NEO network rather than the entire blockchain. For more information, see [Synchronizing the blockchain faster](../syncblocks.md).
The client must be fully synchronized before use. In order to speed up network synchronization you can download an offline package of the blockchain data up to a certain block height. This means the client will only need to sync the additional blocks from the Neo network rather than the entire blockchain. For more information, see [Synchronizing the blockchain faster](../syncblocks.md).

## Starting the NEO node
## Starting the Neo node

Open the command line, navigate to the Neo-CLI directory, and enter the following command to start the NEO node:
Open the command line, navigate to the Neo-CLI directory, and enter the following command to start the Neo node:

On **Windows 10**:

Expand Down Expand Up @@ -249,4 +249,4 @@ If you want the external program to access the node API need to open the firewal

## What's next?

[NEO-CLI SeedList](seedlist.md)
[Neo-CLI SeedList](seedlist.md)
10 changes: 5 additions & 5 deletions docs/en-us/node/cli/seedlist.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# NEO-CLI SeedList
# Neo-CLI SeedList

## Introduction
### What is the SeedList?
The SeedList, simply put, is a list of URLs. They belong to the nodes that NEO-CLI tries to connect to when it starts.
The SeedList, simply put, is a list of URLs. They belong to the nodes that Neo-CLI tries to connect to when it starts.
You can find the SeedList in `protcol.json`, under the neo-cli directory.

```json
Expand All @@ -27,7 +27,7 @@ You can find the SeedList in `protcol.json`, under the neo-cli directory.
}
}
```
Here, NEO-CLI is configured to connect to `seed1.neo.org`, `seed2.neo.org`, and so on through `PORT:10333`.
Here, Neo-CLI is configured to connect to `seed1.neo.org`, `seed2.neo.org`, and so on through `PORT:10333`.

### Potential Issues with current setup
That's all well and good, but what happens if every single node in our list is down?
Expand Down Expand Up @@ -68,7 +68,7 @@ The main port neo-cli works with is `10333`. Currently, we are pinging `RPC` onl


#### Editing the protocol
To let NEO-CLI know the new SeedList, we will paste the addresses chosen before into `protocol.json`.
To let Neo-CLI know the new SeedList, we will paste the addresses chosen before into `protocol.json`.

```json
{
Expand Down Expand Up @@ -128,7 +128,7 @@ To let NEO-CLI know the new SeedList, we will paste the addresses chosen before
}
}
```
Notice that we've added `:10333` to the end of each of the addresses, to tell NEO-CLI that to connect using the `P2P` protocol.
Notice that we've added `:10333` to the end of each of the addresses, to tell Neo-CLI that to connect using the `P2P` protocol.

And that's it! You can now start neo-cli as usual.

Expand Down
14 changes: 7 additions & 7 deletions docs/en-us/node/introduction.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# NEO Node Introduction
# Neo Node Introduction
Nodes that store all of the blockchain are called “full-nodes”. They are connected to the blockchain through a P2P network. All the nodes in the blockchain network are equal, they act both as a client interface and as a server.

There are two full-node programs:

- Neo-GUI, which has all the basic functions of a user-client including a graphical user interface and is intended for NEO users.
- Neo-CLI, which provides an external API for basic wallet functions and is intended for NEO developers. It also helps other nodes achieve consensus with the network and is involved in generating new blocks.
- Neo-GUI, which has all the basic functions of a user-client including a graphical user interface and is intended for Neo users.
- Neo-CLI, which provides an external API for basic wallet functions and is intended for Neo developers. It also helps other nodes achieve consensus with the network and is involved in generating new blocks.

The NEO [network protocol](../tooldev/network-protocol.md) provides a low level API for some transaction types that are not currently supported by the CLI, such as claiming GAS or sending NEO without an open wallet.
The Neo [network protocol](../tooldev/network-protocol.md) provides a low level API for some transaction types that are not currently supported by the CLI, such as claiming GAS or sending Neo without an open wallet.

## NEO client download address
## Neo client download address

| | Neo-GUI | Neo-CLI |
| ---- | ---------------------------------------- | ---------------------------------------- |
Expand Down Expand Up @@ -43,15 +43,15 @@ The NEO [network protocol](../tooldev/network-protocol.md) provides a low level
| JSON-RPC | ||
| The consensus of the participating blocks | ||

## NEO-CLI security policy
## Neo-CLI security policy

To enable an external program to access the node API, you need to open the firewall port.

> [!Note]
>
> To avoid the significant security risk, a whitelist or firewall must be used to block external server requests.
NEO-CLI does not provide the function to remotely switching on/off the wallet, and it does not verify the process when opening a wallet. Therefore, you should set your own security policies. The wallet must be kept open all the time to respond to the withdrawal requests of users. For security reasons, the wallets should be run in an independent server on which the firewall is configured properly, as shown below.
Neo-CLI does not provide the function to remotely switching on/off the wallet, and it does not verify the process when opening a wallet. Therefore, you should set your own security policies. The wallet must be kept open all the time to respond to the withdrawal requests of users. For security reasons, the wallets should be run in an independent server on which the firewall is configured properly, as shown below.

| | Main Net | Test Net |
| ------------------ | ------------ | ------------- |
Expand Down
Loading

0 comments on commit 515465a

Please sign in to comment.