mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-21 11:51:03 +00:00
Merge pull request #3526 from nspcc-dev/improve-doc
This commit is contained in:
commit
07da75c254
2 changed files with 29 additions and 0 deletions
|
@ -33,6 +33,13 @@ a dialect of Go rather than a complete port of the language:
|
|||
it's up to the programmer whether assert can be performed successfully.
|
||||
* type aliases including the built-in `any` alias are supported.
|
||||
* generics are not supported, but eventually will be (at least, partially), ref. https://github.com/nspcc-dev/neo-go/issues/2376.
|
||||
* `~` token is not supported
|
||||
* `comparable` is not supported
|
||||
* arrays (`[4]byte`) are not supported (https://github.com/nspcc-dev/neo-go/issues/3524)
|
||||
* `min()` and `max()` are not supported (https://github.com/nspcc-dev/neo-go/issues/3090)
|
||||
* `clear()` is not supported (https://github.com/nspcc-dev/neo-go/issues/3091)
|
||||
* ranging over integers in `for` is not supported (https://github.com/nspcc-dev/neo-go/issues/3525)
|
||||
* `for` loop variables are treated in pre-Go 1.22 way: a single instance is created for the whole loop
|
||||
|
||||
## VM API (interop layer)
|
||||
Compiler translates interop function calls into Neo VM syscalls or (for custom
|
||||
|
|
|
@ -403,3 +403,25 @@ where:
|
|||
|
||||
Note that `Transaction` is a NeoGo extension that isn't supported by the NeoC#
|
||||
node and must be disabled on the public Neo N3 networks.
|
||||
|
||||
## DB compatibility
|
||||
|
||||
Real networks with large number of blocks require a substantial amount of time
|
||||
to synchronize. When operating a number of node instances with similar
|
||||
configurations you may want to save some resources by performing synchronization
|
||||
on one node and then copying the DB over to other instances. In general, this
|
||||
can be done and this is supported, but NeoGo has a lot of options that may
|
||||
affect this:
|
||||
- any differences in `ProtocolConfiguration` section make databases
|
||||
incompatible, except for `Max*` settings, `MemPoolSize`,
|
||||
`P2PNotaryRequestPayloadPoolSize`, `SeedList`, `TimePerBlock`.
|
||||
Protocol configuration is expected to be the same on all nodes of the same
|
||||
network, so don't touch it unless you know what you're doing.
|
||||
- DB types (Level/Bolt) must be the same
|
||||
- `GarbageCollectionPeriod` must be the same
|
||||
- `KeepOnlyLatestState` must be the same
|
||||
- `RemoveUntraceableBlocks` must be the same
|
||||
|
||||
BotlDB is also known to be incompatible between machines with different
|
||||
endianness. Nothing is known for LevelDB wrt this, so it's not recommended
|
||||
to copy it this way too.
|
||||
|
|
Loading…
Reference in a new issue