Roman Khimov
25d72db8b0
*: update go.sum/go.mod wrt previous change
2022-03-21 14:39:05 +03:00
AnnaShaleva
7a8dc11791
examples: update dependencies version
2022-03-18 13:44:33 +03:00
Evgeniy Stratonikov
4960766019
go.mod: update pkg/interop dependency
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-03-15 17:15:40 +03:00
AnnaShaleva
abf719dcde
gomod: update version of interop package
2022-03-01 19:08:22 +03:00
Anna Shaleva
563c3a4baa
vm: replace ishell with urfave/cli
...
Use github.com/chzyer/readline for readline capabilities (including
history and ANSI escape sequences handling).
2022-02-18 16:34:50 +03:00
Roman Khimov
7945097543
native: fix ContractManagement's call flags for update/deploy
...
See neo-project/neo#2653 .
2022-02-01 12:21:00 +03:00
Evgeniy Stratonikov
e890c32dcc
rpc/client: remove dependency on examples
...
Duplicate necessary structures in a dedicated micropackage.
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-25 12:41:06 +03:00
Evgeniy Stratonikov
1154eae3cd
examples: use proper interop version in go.mod
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-25 12:37:26 +03:00
Evgeniy Stratonikov
ac06da048c
go.mod: add examples/nft-nd-nns dependency
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-21 10:25:20 +03:00
Evgeniy Stratonikov
492db89576
pkg/interop: update actual version
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-20 13:52:57 +03:00
Evgeniy Stratonikov
9871dc8f5a
compiler: update x/tools package
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-20 13:21:26 +03:00
Pavel Karpy
a33779c55e
oracle/neofs: Upgrade NeoFS dependencies
...
Update includes:
1. New simple client mode that parses erroneous status codes as `error` and
returns them from the calls of the client methods.
2. `Client` is struct now, not an interface.
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-01-13 16:34:47 +03:00
Roman Khimov
b16acfdfc0
go.mod: update go-ordered-json, fix #2319
2022-01-11 19:59:53 +03:00
Leonard Lyubich
0c4017cc20
oracle/neofs: Upgrade NeoFS dependencies
...
Replace `neofs-api-go` module with `neofs-sdk-go`. Adapt to NeoFS
response statuses in the implementation of NeoFS oracle.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-12-02 11:59:20 +03:00
Roman Khimov
748a70569a
mempool: use uint256 library for fee tracking
...
It's very effective in avoiding allocations for big.Int, we don't have a
microbenchmark for memppol, but this improves TPS metrics by ~1-2%, so it's
noticeable.
2021-12-01 21:36:25 +03:00
Roman Khimov
328f8b7954
Merge pull request #2238 from nspcc-dev/fix-block-queue
...
network: remove priority queue from block queue
2021-11-01 12:03:45 +03:00
Roman Khimov
8bb1ecb45a
network: remove priority queue from block queue
...
Use circular buffer which is a bit more appropriate. The problem is that
priority queue accepts and stores equal items which wastes memory even in
normal usage scenario, but it's especially dangerous if the node is stuck for
some reason. In this case it'll accept from peers and put into queue the same
blocks again and again leaking memory up to OOM condition.
Notice that queue length calculation might be wrong in case circular buffer
wraps, but it's not very likely to happen (usually blocks not coming from the
queue are added by consensus and it's not very fast in doing so).
2021-11-01 11:49:01 +03:00
Roman Khimov
1144a03486
storage: drop RedisDB, close #2130
2021-10-27 17:32:25 +03:00
Roman Khimov
fb4b87bb96
storage: drop BadgerDB support, close #2130
2021-10-27 17:31:55 +03:00
Anna Shaleva
dfc0b25cfe
gomod: use nspcc-dev's fork of go-ordered-json
...
Escape non-ASCII characters while JSON encoding.
2021-09-15 15:01:01 +03:00
Roman Khimov
ede410a4a7
go.mod: update ishell package
...
It only adds go.mod and changes import path, that's it.
2021-07-21 23:28:26 +03:00
Roman Khimov
b3880ab5d8
go.mod: update x/text package
...
New unicode and things, nothing really interesting for us.
2021-07-21 23:28:26 +03:00
Roman Khimov
f7b8fd522d
go.mod: update x/term package
...
It supposedly fixes some Windows and Solaris problem, but this commit is
deliberately taken before the package switches to Go 1.17 (as we still need
older versions).
2021-07-21 23:28:26 +03:00
Roman Khimov
19495ae631
go.mod: update x/crypto package
...
We're only using RIPEMD160 and Scrypt from it, Scrypt was updated slightly.
2021-07-21 23:28:26 +03:00
Roman Khimov
4ddea2ce74
go.mod: update zap library
...
There was a number of fixes, let's have them as well.
2021-07-21 23:28:26 +03:00
Roman Khimov
fcbf30e5e9
go.mod: update Uber's atomic library
...
They've managed to fix some bug there. And added new types which we don't
currently need, but anyway.
2021-07-21 23:28:26 +03:00
Roman Khimov
ae651df312
go.mod: update bbolt
...
Some minor fixes/optimizations.
2021-07-21 23:28:26 +03:00
Roman Khimov
c4603443e0
go.mod: update cli library
...
Something was fixed there, OK.
2021-07-21 23:28:26 +03:00
Roman Khimov
4aff5e673e
go.mod: update goleveldb
...
We were using some version from 2018 and there was a big number of fixes
and optimizations since then. It's not managed well though, current 1.0.0 tag
is 2019, so we're using latest and greatest here.
2021-07-21 23:28:26 +03:00
Roman Khimov
099e7cee02
go.mod: update Prometheus client and YAML package
...
Prometheus is somehow better (isn't noticeably probably), but it also
wants at least 2.3.0 YAML package, so update it to 2.4.0 which fixes some
important bug wrt v2 line (maybe we need to migrate to v3 though)/
2021-07-21 23:28:26 +03:00
Roman Khimov
c4df3ec5b9
go.mod: update lz4 library
...
Nothing special there.
2021-07-21 23:28:26 +03:00
Roman Khimov
f9d8573eda
go.mod: update base58 library
...
Some trivial optimizations and document updates, nothing substantial.
2021-07-21 23:28:26 +03:00
Roman Khimov
08be9e5955
go.mod: update redis slightly
...
redis library itself is at v8 already, but I'm not sure we can reliably test
it quickly, so just apply some minor fixes.
2021-07-21 23:28:26 +03:00
Roman Khimov
350c5b3a59
go.mod: update btcd to 0.22.0-beta
...
We're using btcec for Koblitz curve implementation from it and there were some
important fixes.
2021-07-21 23:28:26 +03:00
Roman Khimov
002ad9dfee
go.mod: update miniredis to 2.15.1
...
It's only used for testing purposes and this version doesn't change anything
for us, but still better be current.
2021-07-21 23:28:26 +03:00
Roman Khimov
4d1e952be6
go.mod: update go-datastructures to 1.0.53
...
We're only using queue library and it didn't change in any way, but 1.0.53 has
proper go.mod, so it's still an improvement.
It at the same time pulls some new packages also like x/tools.
2021-07-21 23:28:00 +03:00
Roman Khimov
4d2ecab16f
consensus: fix nonce handling
...
It was broken somewhere between 2f490a3403
and
85ce207f40
leading to panic on watch only node:
2021-07-21T16:21:39.201+0200 INFO received Commit {"validator": 3}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0xbcc59e]
goroutine 486 [running]:
github.com/nspcc-dev/neo-go/pkg/consensus.(*service).newBlockFromContext(0xc0001629a0, 0xc000308000, 0xc0010fa000, 0x2cb417800)
github.com/nspcc-dev/neo-go/pkg/consensus/consensus.go:664 +0xbe
github.com/nspcc-dev/dbft.(*Context).MakeHeader(...)
github.com/nspcc-dev/dbft@v0.0.0-20210302103605-cc75991b7cfb/context.go:270
github.com/nspcc-dev/dbft.(*DBFT).onCommit(0xc000308000, 0x138c998, 0xc000115110)
github.com/nspcc-dev/dbft@v0.0.0-20210302103605-cc75991b7cfb/dbft.go:487 +0x575
github.com/nspcc-dev/dbft.(*DBFT).OnReceive(0xc000308000, 0x138c998, 0xc000115110)
github.com/nspcc-dev/dbft@v0.0.0-20210302103605-cc75991b7cfb/dbft.go:251 +0xef5
github.com/nspcc-dev/neo-go/pkg/consensus.(*service).eventLoop(0xc0001629a0)
github.com/nspcc-dev/neo-go/pkg/consensus/consensus.go:312 +0x7d6
created by github.com/nspcc-dev/neo-go/pkg/consensus.(*service).Start
github.com/nspcc-dev/neo-go/pkg/consensus/consensus.go:262 +0xdc
In fact, nonce is correctly provided by dbft library (since Legacy), we just
need to use it here.
2021-07-21 19:06:19 +03:00
Evgeniy Stratonikov
8077f9232d
interop: implement System.Runtime.GetRandom
...
Our murmur3 implementation is architecture independent and optimized in
assembly.
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-07-15 16:00:01 +03:00
Pavel Karpy
32948180fb
execute go mod tidy
...
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-06-10 16:15:33 +03:00
Pavel Karpy
c4f8c7a9b2
oracle/neofs: update neofs-api-go
...
Update neofs-api-go to `v1.27.1`.
Add `WithURIAddress` client option.
Stop using `V2` abstractions outside
of the `api-go` library.
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-06-10 14:16:02 +03:00
Roman Khimov
186cfa32df
go.sum: go mod tidy
2021-05-13 17:22:30 +03:00
Evgeniy Stratonikov
5fc81c787b
jsonpath: use ordered map json unmarshaler
2021-05-13 11:53:49 +03:00
Evgeniy Stratonikov
1c30d8c395
oracle: make JSONPath compatible with C# implementation
...
C# node uses simplified implementation which is easy to port.
2021-05-13 11:53:28 +03:00
Evgenii Stratonikov
22b4edd58e
oracle: support NeoFS
2021-03-09 14:24:57 +03:00
Anna Shaleva
cc112e1a89
*: add go 1.16 support
2021-03-02 14:04:35 +03:00
Anna Shaleva
0cec99a3ea
gomod: update dbft version
2021-03-01 17:07:55 +03:00
Evgeniy Stratonikov
f6176b30f2
cli: support escape codes
2021-02-11 16:06:11 +03:00
Evgeniy Stratonikov
c420014cb5
oracle: implement filters
2021-01-28 13:00:59 +03:00
Evgeniy Stratonikov
b918ec3abc
consensus: refactor payloads structure
...
1. `Version` and `PrevHash` are now in `PrepareRequest`.
2. Serialization is done via `Extensible` payload.
3. Update dbft version.
2021-01-22 10:38:32 +03:00
Evgenii Stratonikov
d6ec1290c5
go.mod: update dbft version
...
Close #1632 .
2020-12-21 13:20:23 +03:00
Evgenii Stratonikov
75eb2b05d8
go.mod: update dbft version
2020-12-16 17:45:14 +03:00
Evgenii Stratonikov
80c3c374fd
go.mod: update testify version
2020-12-10 17:01:39 +03:00
Evgenii Stratonikov
33f13ab1c0
vmcli: add tests
2020-12-02 10:49:37 +03:00
Roman Khimov
21317c25cf
go.sum: tidy
2020-11-18 23:19:10 +03:00
Evgenii Stratonikov
2b0d3d2e22
go.mod: update dbft
2020-11-09 17:34:57 +03:00
Roman Khimov
3a92151e9f
update dbft to pick timer improvements
2020-09-25 23:00:50 +03:00
Roman Khimov
a6a1df4e0d
consensus: update dbft, use new timer
2020-09-11 18:55:07 +03:00
Roman Khimov
9c5ef8d234
dbft: rev up, pick performance improvements
2020-09-09 20:46:31 +03:00
Roman Khimov
f5f58a7e91
keys: add simple LRU key cache for 1024 elements
...
The cost of Y calculation from X is comparable with signature check, so it
reduces witness check overhead by ~30% for cached keys and gives ~5% overall
boost in TPS.
2020-09-09 20:46:31 +03:00
Anna Shaleva
4fafed8411
go.mod: tidy
2020-07-14 16:21:38 +03:00
Roman Khimov
815c075112
consensus: update dbft, use millisecond-precision time, add CV reason
2020-07-11 19:54:50 +03:00
Anna Shaleva
8de0332107
*: use MaxTransactionsPerBlock from Policy native contract
...
part of #904
1. We now have MaxTransactionsPerBlock set in native Policy contract,
so this value should be used in (dbft).GetVerified method instead
of passing it as an argument.
2. Removed (dbft).WithTxPerBlock.
2. DBFT API has changed, so update it's version.
3. Removed MaxTransactionsPerBlock from node configuration, as we
have it set in native Policy contract.
2020-06-24 07:58:05 +03:00
Roman Khimov
fd1e672e74
update dbft to include CountFailed and RecoveryMessage changes
2020-06-01 17:56:05 +03:00
Evgenii Stratonikov
28f31633d0
go.mod: tidy
2020-05-27 11:48:52 +03:00
Roman Khimov
b04c8623c5
Merge pull request #925 from nspcc-dev/rpc-over-websocket
...
RPC over websocket
2020-05-06 12:52:58 +03:00
Roman Khimov
ec62edac68
rpc/server: add websockets support via '/ws' URL
2020-05-04 16:54:35 +03:00
Evgenii Stratonikov
905f5f3047
*: go mod tidy
2020-04-30 19:29:52 +03:00
Anna Shaleva
dbda721599
consensus.Block: removed unnecessary setters
...
As far as we have consensus context in NewBlockFromContext, we don't
need them anymore.
2020-04-27 17:59:56 +03:00
Anna Shaleva
6db4ca874d
consensus: replace NewBlock() with NewBlockFromContext(ctx *Context)
...
We have to set ConsensusData.PrimaryIndex field of Block, so this value
can be retrieved from consensus context.
2020-04-27 17:58:25 +03:00
Anna Shaleva
0de5cb1bde
core, consensus: nanoseconds-precision timestamp
...
Keep timestamp of consensus messages in nanoseconds-precision state
2020-04-27 17:57:32 +03:00
Anna Shaleva
aa554f0a9a
core: update block timestamp format
...
Changed block.Timestamp from uint32 to uint64
2020-04-27 17:56:44 +03:00
Evgenii Stratonikov
24ac001793
*: go mod tidy
...
Add `github.com/dgraph-io/badger` in go.mod .
2020-04-10 15:32:21 +03:00
Evgenii Stratonikov
fcc4877f43
go.mod: update boltdb to v1.3.4
...
Also import lib as declared in it's go.mod:
via `go.etcd.io/bbolt`.
2020-03-25 17:07:54 +03:00
Evgenii Stratonikov
386ff07054
*: go mod tidy
2020-03-10 12:55:41 +03:00
Roman Khimov
9b04623edf
go.mod: fix dbft version, previous commit was wiped during "merge"
...
It wasn't really a merge, but rather rebase and ff-push.
2020-03-04 19:32:15 +03:00
Roman Khimov
3af28e1de4
go.mod: update dbft to smth compatible with nspcc-dev/neo-go
2020-03-03 17:31:09 +03:00
Roman Khimov
e41d434a49
*: move all packages from CityOfZion to nspcc-dev
2020-03-03 17:21:42 +03:00
Roman Khimov
36773816d5
go.mod: update dbft with nspcc-dev/dbft#26
2020-02-19 14:46:51 +03:00
Roman Khimov
4299d1cf1b
update dbft package with nspcc-dev/dbft#25
2020-02-19 12:19:02 +03:00
Roman Khimov
d3badc3f97
consensus: log more like neo-cli, update dbft
2020-02-11 18:02:13 +03:00
Evgenii Stratonikov
8947f39a0d
go.sum: go mod tidy
2020-02-10 11:05:32 +03:00
Evgenii Stratonikov
3d99b10d5e
consensus: update dbft version
2020-01-30 13:57:21 +03:00
Evgenii Stratonikov
55d98ab19a
consensus: update keys from wallet after every block
2020-01-17 17:30:45 +03:00
Roman Khimov
e2fff3bb1d
keys: update to newer rfc6979 package
...
Fixes #592 .
2020-01-16 18:21:10 +03:00
Evgenii Stratonikov
4d56fde98a
consensus: update dbft version
2020-01-13 15:13:58 +03:00
Evgenii Stratonikov
07b88796fb
consensus: update dbft version
2019-12-13 11:28:57 +03:00
Evgenii Stratonikov
0e1621a0da
go.mod: update dbft and tidy
2019-12-09 15:03:38 +03:00
Evgenii Stratonikov
765c354793
consensus: return signed messages from recovery.Get*
2019-12-06 11:33:32 +03:00
Roman Khimov
c8aa061421
cli/wallet: use more secure way to read passwords
...
They were printed in plaintext, believe it or not. Also, `ssh/terminal` does
some proper magic to really read something from the terminal.
2019-12-03 20:04:52 +03:00
Evgenii Stratonikov
fdd5276d3e
network: plug in dBFT library
2019-11-27 10:57:22 +03:00
Vsevolod Brekelov
d374175170
monitoring: add prometheus monitoring
...
add init metrics service which uses prometheus;
add configuration for metrics service;
add monitoring metrics for blockchain,rpc,server;
2019-10-29 20:51:17 +03:00
Roman Khimov
c531dc0bde
network: add block queue
...
This one will replace blockCache in Blockchain itself as it can and should be
external from it. The idea is that we only feed successive blocks into the
Blockchain and it only stores valid proper Blockchain and nothing else.
2019-09-27 13:00:09 +03:00
Roman Khimov
aa0c765be9
go.mod/sum: update and tidy
2019-09-17 15:31:59 +03:00
Vsevolod Brekelov
bfe5fd538e
storage: add boltDB support
...
closes #335
2019-09-14 10:28:43 +03:00
Roman Khimov
e872b6b421
vm/cli: redo the whole thing using abiosoft/ishell
...
Adds history support, better editing and way better help system. Expand on
some helps while at it.
2019-09-10 23:31:06 +03:00
Vsevolod Brekelov
4f680703a4
storage: multiple DB support and Redis support
...
add config which closes #336
add redis db support
2019-09-10 17:22:21 +03:00
Roman Khimov
8db9d2a976
crypto: use mr-tron/base58 for base58
...
Use more fast and reliable implementation. Add some tests for our wrappers,
deduplicate code in PublicKey.Adress(). Fixes #355 .
2019-09-09 13:12:55 +03:00
Evgeniy Kulikov
78cf3e9c5f
Use our RFC6979 fork
...
- prepare fork
- update go-modules
- update dependencies
2019-08-27 13:07:02 +03:00
Evgeniy Kulikov
6ccb518ab0
Optimizations + some improvements ( #105 )
...
* Optimizations + some improvements
- optimized pkg/core/storage.HeaderHashes
- optimized pkg/rpc.performRequest (used json.Encoder)
- fixes for pkg/util.ReadVarUint and pkg/util.WriteVarUint
- optimized and fix fixed8 (Fixed8DecodeString / MarshalJSON) + tests
- optimized and fix uint160 (Bytes / Uint160DecodeString / Equal / MarshalJSON) + tests
- optimized and fix uint256 (Bytes / Equal / MarshalJSON) + tests
- preallocate for pkg/vm.buildStackOutput
- add go.mod / go.sum
* update version
2018-11-26 16:56:45 +01:00