Commit graph

77 commits

Author SHA1 Message Date
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