mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-21 23:29:38 +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.
|
it's up to the programmer whether assert can be performed successfully.
|
||||||
* type aliases including the built-in `any` alias are supported.
|
* 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.
|
* 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)
|
## VM API (interop layer)
|
||||||
Compiler translates interop function calls into Neo VM syscalls or (for custom
|
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#
|
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.
|
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