Commit graph

2174 commits

Author SHA1 Message Date
Roman Khimov
e93a2192b1
Merge pull request #324 from nspcc-dev/fix-circleci-workflow-version
Fix CircleCI workflows to work and Docker image to build in CircleCI.
2019-08-29 16:17:57 +03:00
Roman Khimov
ed6075e4ba Dockerfile: use gomod to fix build failures
---> Running in 0e7bb4ca4583
+ export 'GOGC=off'
+ export 'GO111MODULE=on'
+ export 'CGO_ENABLED=0'
+ export 'LDFLAGS=-X /config.Version=0.5.0-pre-40-gb8ad012'
+ go build -v '-mod=vendor' -ldflags '-X /config.Version=0.5.0-pre-40-gb8ad012' -o /go/bin/neo-go ./cli/main.go
build command-line-arguments: cannot load github.com/go-redis/redis: open /neo-go/vendor/github.com/go-redis/redis: no such file or directory
The command '/bin/sh -c set -x     && export GOGC=off     && export GO111MODULE=on     && export CGO_ENABLED=0     && export LDFLAGS="-X ${REPO}/config.Version=${VERSION}"     && go build -v -mod=vendor -ldflags "${LDFLAGS}" -o /go/bin/neo-go ./cli/main.go' returned a non-zero code: 1
make: *** [Makefile:19: image] Error 1
Exited with code 2
2019-08-29 16:13:32 +03:00
Roman Khimov
b8ad0125b6 Dockerfile: add GO111MODULE export
Maybe fixes this one:
 ---> Running in 3b964b007f22
+ export 'GOGC=off'
+ export 'CGO_ENABLED=0'
+ export 'LDFLAGS=-X /config.Version=0.5.0-pre-39-ga168f09'
+ go build -v '-mod=vendor' -ldflags '-X /config.Version=0.5.0-pre-39-ga168f09' -o /go/bin/neo-go ./cli/main.go
build command-line-arguments: cannot load github.com/go-redis/redis: open /neo-go/vendor/github.com/go-redis/redis: no such file or directory
The command '/bin/sh -c set -x     && export GOGC=off     && export CGO_ENABLED=0     && export LDFLAGS="-X ${REPO}/config.Version=${VERSION}"     && go build -v -mod=vendor -ldflags "${LDFLAGS}" -o /go/bin/neo-go ./cli/main.go' returned a non-zero code: 1
make: *** [Makefile:19: image] Error 1
2019-08-29 16:10:28 +03:00
Roman Khimov
a168f09ac4 Makefile: drop deps from image dependencies
Docker builds shouldn't run go here to avoid CircleCI failures like this:

make: go: Command not found
make: *** [Makefile:32: deps] Error 127
Exited with code 2
2019-08-29 16:07:33 +03:00
Roman Khimov
a3890910f2 Dockerfile: use neo-go for binary name
Be consistent with Makefile (see 3dfb1189f2).
2019-08-29 16:07:33 +03:00
Roman Khimov
6964d86347 circleci: fix make target name for Docker image 2019-08-29 15:48:05 +03:00
Roman Khimov
1871040de6 circleci: fix workflow version
Only version 2 is supported at the moment as per
https://circleci.com/docs/2.0/configuration-reference/#version-1

Not to confuse with top-level version which really can be 2.1.
2019-08-29 15:44:39 +03:00
Roman Khimov
c6d7ef2de4
Merge pull request #322 from nspcc-dev/drop-redundant-dev-code-part-3
Drop redundant dev code part 3, refs. #307, #315 and #318.
2019-08-29 15:04:05 +03:00
Roman Khimov
4f23117d32 payload: fix wrong useragent parsing in version
C# code reads is as a proper variable-length string, so it's not limited to
252 bytes.
2019-08-29 13:42:16 +03:00
Roman Khimov
7b46f9bb86 util: add error check to Read/WriteVarUint
Fixes possibility of bogus reads/writes. Suggested by @im-kulikov.
2019-08-29 13:26:03 +03:00
Vsevolod
27558c89f7
Merge pull request #323 from nspcc-dev/make-config-fixes
Make & config fixes
2019-08-29 13:23:09 +03:00
Roman Khimov
6647317680 config: drop BuildTime support, make builds reproducible
Nobody cares, really. But we care about build being reproducible, one source
tree corresponds to one binary with one checksum.
2019-08-28 22:09:36 +03:00
Roman Khimov
3dfb1189f2 Makefile: fix binary name to be consistent
And return back to using `neo-go` as the binary name because it's not just a
node implementation, neo-go is capable of much more functionality.
2019-08-28 22:05:55 +03:00
Roman Khimov
15311f202b util: drop io, reuse its tests for binaryRW 2019-08-28 19:45:17 +03:00
Roman Khimov
eba83a0e31 smartcontract: use new binaryReader/Writer API from util 2019-08-28 19:45:17 +03:00
Roman Khimov
361724a33e pkg/core: use util.binaryReader/Writer
Simplify error handling.
2019-08-28 19:45:17 +03:00
Roman Khimov
459542a978 pkg/network: convert to using binaryReader/Writer 2019-08-28 19:45:17 +03:00
Roman Khimov
07096a551b util: move strange Read2000Uint256Hashes() into storage
It's the only user of it.
2019-08-28 14:38:57 +03:00
Roman Khimov
672668b9fb util: use more consistent and explicit naming for BR/BW 2019-08-28 13:24:06 +03:00
Roman Khimov
ad2cd15c6c _pkg.dev: drop the last wire/util code
SumSHA256() and ReaderToBuffer() are not used, CalculateHash() shouldn't be
used and BufferLength() is just to easy with only one user.
2019-08-28 13:09:03 +03:00
Roman Khimov
6409cc753c util: move binaryReader/Writer from _pkg.dev
These are useful and nice.
2019-08-28 12:44:23 +03:00
Roman Khimov
a436e22ec1 pkg/network: sort messages
Just for convenience.
2019-08-27 20:12:01 +03:00
Roman Khimov
0f265a6a04 _pkg.dev: drop wire/command
Transferring some missing commands to pkg/network.
2019-08-27 20:08:48 +03:00
Roman Khimov
e89e78159b _pkg.dev: drop wire/protocol package
Move service definitions from it into version (just to save them), but other
than that it's useless for master that has configs ruling the networks.
2019-08-27 19:56:12 +03:00
Roman Khimov
2cb9a4a251
Merge pull request #318 from nspcc-dev/drop-redundant-dev-code-part-2
Drop redundant dev code part 2, refs. #307.
2019-08-27 17:50:16 +03:00
Roman Khimov
2a8e420608 nep2: fix comment, NEP-2 is about keys, not wallets 2019-08-27 17:47:07 +03:00
Roman Khimov
5836ae6873 keys: change Signature() and Address() to not return errors
As they never can return any real one.
2019-08-27 17:46:01 +03:00
Roman Khimov
483b875f4a keys: simplify tests with assert package 2019-08-27 17:46:01 +03:00
Roman Khimov
b77e533d13 crypto/wallet: move public/private key into the new keys package
And drop associated _pkg.dev remnants (refs. #307).

Original `dev` branch had two separate packages for public and private keys,
but those are so intertwined (`TestHelper` subpackage is a proof) that it's
better unite them and all associated code (like WIF and NEP-2) in one
package. This patch also:
 * creates internal `keytestcases` package to share things with wallet (maybe
   it'll be changed in some future)
 * ports some tests from `dev`
 * ports Verify() method for public key from `dev`
 * expands TestPrivateKey() with public key check
2019-08-27 17:45:51 +03:00
Roman Khimov
b19190b32f _pkg.dev: drop crypto/elliptic
It's the same implementation that we have in pkg/crypto (based on
https://github.com/vsergeev/btckeygenie) but with tests preserved. I don't see
any reason to port tests from it because even the pkg/crypto copy should go
away to fix #245.
2019-08-27 17:09:24 +03:00
Roman Khimov
2275b9e4ad _pkg.dev: drop address pkg, move test into crypto
address wrappers don't seem to fit well into master's code, so just drop 'em,
but pick the testing function with good known input/output pair.
2019-08-27 17:09:24 +03:00
Roman Khimov
d7701fe7db _pkg.dev: drop util/ip package
It's an unneccessary kludge, master gets its IP from config and that's it.
2019-08-27 17:09:24 +03:00
Roman Khimov
5938ebb85b _pkg.dev: drop util/io package
Unused.
2019-08-27 17:09:24 +03:00
Roman Khimov
10d5605166 _pkg.dev: drop Checksum package
Duplicates hash.Checksum slightly and doesn't seem to fit into master
well.
2019-08-27 17:09:24 +03:00
Evgeniy Kulikov
96169ef266
Merge pull request #317 from nspcc-dev/fix/data-race-in-memeory-store
Fix DataRace in MemoryStore
- Add RWMutex to MemoryStore struct
- Use Lock/Unlock for writing
- Use RLock/RUnlock for reading
- Fix #313 issue
2019-08-27 16:51:54 +03:00
Evgeniy Kulikov
33f59debf2
store: Fix DataRace in MemoryStore
- Add RWMutex to MemoryStore struct
- Use Lock/Unlock for writing
- Use RLock/RUnlock for reading
- Fix #313 issue
2019-08-27 16:48:30 +03:00
Evgeniy Kulikov
4e2071ecc2
Merge pull request #316 from nspcc-dev/proposal/use-our-rfc6979-fork
Use our RFC6979 fork
2019-08-27 13:15:47 +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
46ce10cbc3
Merge pull request #312 from im-kulikov/Update-Makefile_Dockerfile_Readme
- Make Dockerfile useful and minimal
- Update Makefile commands build / image
- Docker should not ignore vendor (go build -mod=vendor)
- Used git to receive version from tags (see #304)
- Version now displayed when start node (fix #102)
```
    Example:
    
    → ./bin/node --version
    neo-go version 0.44.10-245-g67d5e9f
    
    → ./bin/node -v
    neo-go version 0.44.10-245-g67d5e9f
```
- add go minimal version
- fix dependency manager
2019-08-26 19:35:21 +03:00
Evgeniy Kulikov
9a79c00417
Fix build node and docker-image
- Make Dockerfile useful and minimal
- Update Makefile commands build / image
- Docker should not ignore vendor (go build -mod=vendor)
2019-08-26 19:32:09 +03:00
Evgeniy Kulikov
902125cbeb
Change the way to receive version
- Used git to receive version from tags (see #304)
- Version now displayed when start node (fix #102)

Example:

→ ./bin/node --version
neo-go version 0.44.10-245-g67d5e9f

→ ./bin/node -v
neo-go version 0.44.10-245-g67d5e9f
2019-08-26 19:32:09 +03:00
Evgeniy Kulikov
f1cdd2222b
Update Readme
- add go minimal version
- fix dependency manager
2019-08-26 19:32:09 +03:00
Roman Khimov
0beb63fd47
Merge pull request #315 from nspcc-dev/drop-redundant-dev-code-part-1
Drop redundant dev code part 1
2019-08-26 13:45:35 +03:00
Roman Khimov
7165b5ab1e base58: add testing from _pkg.dev
And drop implementation in _pkg.dev, as it's redundant. Refs. #307.
2019-08-26 13:32:19 +03:00
Roman Khimov
ec7e17ffa6 pkg: make use of the new crypto/hash package
Simplifies a lot of code and removes some duplication. Unfortunately I had to
move test_util random functions in same commit to avoid cycle
dependencies. One of these random functions was also used in core/transaction
testing, to simplify things I've just dropped it there and used a static
string (which is nice to have for a test anyway).

There is still sha256 left in wallet (but it needs to pass Hash structure into
the signing function).
2019-08-26 13:32:19 +03:00
Roman Khimov
2fd782eee8 util: drop RandUint32()
I don't see anything useful in it, all the current users of it should just use
plain rand.Uint32() not limiting its output in any way.
2019-08-26 13:32:19 +03:00
Roman Khimov
3fa6ba9c7b hash: simplify ripemd160 usage
Go's Hash is explicitly specified to never return an error on Write(), and our
own decoding functions only check for length which is gonna be right in every
case so it makes no sense returning errors from these functions.
2019-08-26 13:32:19 +03:00
Roman Khimov
80c3c9035a hash: simplify Sha256 implementations
Use sha256.Sum256() and drop duplicating Sum() completely.
2019-08-26 13:32:19 +03:00
Roman Khimov
5c5878968b hask: import package from _pkg.dev, make it compile 2019-08-26 13:32:19 +03:00
Roman Khimov
37be2e215c array: add a test for even num of elements
And drop duplicating code from _pkg.dev.
2019-08-26 13:32:19 +03:00