Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Abhimanyu121 committed Jul 27, 2021
2 parents 78f88a0 + cf5f8a8 commit a6e70fc
Show file tree
Hide file tree
Showing 267 changed files with 8,293 additions and 2,852 deletions.
22 changes: 22 additions & 0 deletions .docker/Dockerfile.adm
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
FROM golang:1.16-alpine as basebuilder
RUN apk add --update make bash

FROM basebuilder as builder
ARG BUILD=now
ARG VERSION=dev
ARG REPO=repository
WORKDIR /src
COPY . /src

RUN make bin/neofs-adm

# Executable image
FROM alpine AS neofs-adm
RUN apk add --no-cache bash

WORKDIR /

COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /src/bin/neofs-adm /bin/neofs-adm

CMD ["neofs-adm"]
26 changes: 26 additions & 0 deletions .docker/Dockerfile.aio
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

ARG HUB_IMAGE=nspccdev/neofs
ARG HUB_TAG=latest

FROM ${HUB_IMAGE}-cli:${HUB_TAG} as neofs-cli
FROM ${HUB_IMAGE}-ir:${HUB_TAG} as neofs-ir
FROM ${HUB_IMAGE}-storage:${HUB_TAG} as neofs-storage
FROM ${HUB_IMAGE}-adm:${HUB_TAG} as neofs-adm

# Executable image
FROM alpine AS neofs-aio
RUN apk add --no-cache \
bash \
ca-certificates \
jq \
expect \
iputils

WORKDIR /

COPY --from=neofs-cli /bin/neofs-cli /bin/neofs-cli
COPY --from=neofs-ir /bin/neofs-ir /bin/neofs-ir
COPY --from=neofs-storage /bin/neofs-node /bin/neofs-node
COPY --from=neofs-adm /bin/neofs-adm /bin/neofs-adm

CMD ["neofs-cli"]
4 changes: 2 additions & 2 deletions Dockerfile.cli → .docker/Dockerfile.cli
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM golang:1.14-alpine as builder
RUN apk update && apk add build-base bash && apk add --update make ca-certificates coreutils && apk add --no-cache git
FROM golang:1.16-alpine as basebuilder
RUN apk add --update make bash


# ARG BUILD=now
Expand Down
8 changes: 8 additions & 0 deletions .docker/Dockerfile.dirty-adm
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM alpine
RUN apk add --no-cache bash ca-certificates

WORKDIR /

COPY bin/neofs-adm /bin/neofs-adm

CMD ["neofs-adm"]
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion Dockerfile.ir → .docker/Dockerfile.ir
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.14-alpine as basebuilder
FROM golang:1.16-alpine as basebuilder
RUN apk add --update make bash

FROM basebuilder as builder
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.storage → .docker/Dockerfile.storage
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.14-alpine as basebuilder
FROM golang:1.16-alpine as basebuilder
RUN apk add --update make bash

FROM basebuilder as builder
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.14-alpine as basebuilder
FROM golang:1.16-alpine as basebuilder
RUN apk add --update make bash

FROM basebuilder as builder
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
go: [ '1.14.x', '1.15.x', '1.16.x' ]
go: [ '1.16.x' ]
steps:
- name: Setup go
uses: actions/setup-go@v2
Expand All @@ -35,9 +35,6 @@ jobs:
restore-keys: |
${{ runner.os }}-go-${{ matrix.go }}-
- name: Get test dependencies
run: make test_dep

- name: Run go test
run: go test -coverprofile=coverage.txt -covermode=atomic ./...

Expand Down
135 changes: 135 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,134 @@
# Changelog
Changelog for NeoFS Node

## [Unreleased]

## [0.23.0] - 2021-07-23 - Wando (완도, 莞島)

Improved stability for notary disabled environment.

### Added
- Alphabet wallets generation command in neofs-adm (#684)
- Initial epoch timer tick synchronization at Inner Ring node startup (#679)

### Changed
- `--address` flag is optional in NeoFS CLI (#656)
- Notary subsystem now logs `ValidUntilBlock` (#677)
- Updated neo-go to v0.96.1
- Storage Node configuration example contains usable parameters (#699)

### Fixed
- Do not use side chain RoleManagement contract as source of Inner Ring list
when notary disabled in side chain (#672)
- Alphabet list transition is even more effective (#697)
- Inner Ring node does not require proxy and processing contracts if notary
disabled (#701, #714)

### Upgrading from v0.22.3
To upgrade Storage node or Inner Ring node from v0.22.3, you don't need to
change configuration files. Make sure, that NEO RPC nodes, specified in config,
are connected to N3 RC4 (Testnet) network.

## [0.22.3] - 2021-07-13

### Added
- Support binary eACL format in container CLI command ([#650](https://github.com/nspcc-dev/neofs-node/issues/650)).
- Dockerfile for neofs-adm utility ([#680](https://github.com/nspcc-dev/neofs-node/pull/680)).

### Changed
- All docker files moved to `.docker` dir ([#682](https://github.com/nspcc-dev/neofs-node/pull/682)).

### Fixed
- Do not require MainNet attributes in "Without MainNet" mode ([#663](https://github.com/nspcc-dev/neofs-node/issues/663)).
- Stable alphabet list merge in Inner Ring governance ([#670](https://github.com/nspcc-dev/neofs-node/issues/670)).
- User can specify only wallet section without node key ([#690](https://github.com/nspcc-dev/neofs-node/pull/690)).
- Log keys in hex format in reputation errors ([#693](https://github.com/nspcc-dev/neofs-node/pull/693)).
- Connections leak and reduced amount of connection overall ([#692](https://github.com/nspcc-dev/neofs-node/issues/692)).

### Removed
- Debug output of public key in Inner Ring log ([#689](https://github.com/nspcc-dev/neofs-node/pull/689)).

## [0.22.2] - 2021-07-07

Updated broken version of NeoFS API Go.

### Updated
- NeoFS API Go: [v1.28.3](https://github.com/nspcc-dev/neofs-api-go/releases/tag/v1.28.3).

## [0.22.1] - 2021-07-07

### Added
- `GetCandidates` method to morph client wrapper ([#647](https://github.com/nspcc-dev/neofs-node/pull/647)).
- All-in-One Docker image that contains all NeoFS related binaries ([#662](https://github.com/nspcc-dev/neofs-node/pull/662)).
- `--version` flag to Storage Node binary ([#664](https://github.com/nspcc-dev/neofs-node/issues/664)).

### Changed
- Do not check NeoFS version in `LocalNodeInfo` requests and `Put` container operations; `v2.7.0` is genesis version of NeoFS ([#660](https://github.com/nspcc-dev/neofs-node/pull/660)).
- All error calls of CLI return `1` exit code ([#657](https://github.com/nspcc-dev/neofs-node/issues/657)).

### Fixed
- Do not use multisignature for audit operations ([#658](https://github.com/nspcc-dev/neofs-node/pull/658)).
- Skip audit for containers without Storage Groups ([#659](https://github.com/nspcc-dev/neofs-node/issues/659)).

### Updated
- NeoFS API Go: [v1.28.2](https://github.com/nspcc-dev/neofs-api-go/releases/tag/v1.28.2).

## [0.22.0] - 2021-06-29 - Muuido (무의도, 舞衣島)

Storage nodes with a group of network endpoints.

### Added
- Support of Neo wallet credentials in CLI ([#610](https://github.com/nspcc-dev/neofs-node/issues/610)).
- More reliable approval of trust value by IR ([#500](https://github.com/nspcc-dev/neofs-node/issues/500)).
- Storage node's ability to announce and serve on multiple network addresses ([#607](https://github.com/nspcc-dev/neofs-node/issues/607)).
- Validation of network addresses of netmap candidates in IR ([#557](https://github.com/nspcc-dev/neofs-node/issues/557)).
- Control service with healthcheck RPC in IR and CLI support ([#414](https://github.com/nspcc-dev/neofs-node/issues/414)).

### Fixed
- Approval of objects with with duplicate attribute keys or empty values ([#633](https://github.com/nspcc-dev/neofs-node/issues/633)).
- Approval of containers with with duplicate attribute keys or empty values ([#634](https://github.com/nspcc-dev/neofs-node/issues/634)).
- Default path for CLI config ([#626](https://github.com/nspcc-dev/neofs-node/issues/626)).

### Changed
- `version` command replaced with `--version` flag in CLI ([#571](https://github.com/nspcc-dev/neofs-node/issues/571)).
- Command usage text is not printed on errors in CLI ([#623](https://github.com/nspcc-dev/neofs-node/issues/623)).
- `netmap snapshot` command replaced with `control netmap-snapshot` one in CLI ([#651](https://github.com/nspcc-dev/neofs-node/issues/651)).
- IR does not include nodes with LOCODE derived attributes to the network map ([#412](https://github.com/nspcc-dev/neofs-node/issues/412)).
- IR uses morph/client packages for contract invocations ([#496](https://github.com/nspcc-dev/neofs-node/issues/496)).
- Writecache decreases local size when objects are flushed ([#568](https://github.com/nspcc-dev/neofs-node/issues/568)).
- IR can override global configuration values only in debug build ([#363](https://github.com/nspcc-dev/neofs-node/issues/363)).

### Updated
- Neo Go: [v0.95.3](https://github.com/nspcc-dev/neo-go/releases/tag/v0.95.3).
- NeoFS API Go: [v1.28.0](https://github.com/nspcc-dev/neofs-api-go/releases/tag/v1.28.0).
- protobuf: [v1.26.0](https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.26.0).
- uuid: [v1.2.0](https://github.com/google/uuid/releases/tag/v1.2.0).
- compress: [v1.13.1](https://github.com/klauspost/compress/releases/tag/v1.13.1).
- base58: [v1.2.0](https://github.com/mr-tron/base58/releases/tag/v1.2.0).
- multiaddr: [v0.3.2](https://github.com/multiformats/go-multiaddr/releases/tag/v0.3.2).
- ants: [v2.4.0](https://github.com/panjf2000/ants/releases/tag/v2.4.0).
- orb: [v0.2.2](https://github.com/paulmach/orb/releases/tag/v0.2.2).
- prometheus: [v1.11.0](https://github.com/prometheus/client_golang/releases/tag/v1.11.0).
- testify: [v1.7.0](https://github.com/stretchr/testify/releases/tag/v1.7.0).
- atomic: [v1.8.0](https://github.com/uber-go/atomic/releases/tag/v1.8.0).
- zap: [v1.17.0](https://github.com/uber-go/zap/releases/tag/v1.17.0).
- grpc: [v1.38.0](https://github.com/grpc/grpc-go/releases/tag/v1.38.0).
- cast: [v1.3.1](https://github.com/spf13/cast/releases/tag/v1.3.1).
- cobra: [1.1.3](https://github.com/spf13/cobra/releases/tag/v1.1.3).
- viper: [v1.8.1](https://github.com/spf13/viper/releases/tag/v1.8.1).

## [0.21.1] - 2021-06-10

### Fixed
- Session token lifetime check (#589).
- Payload size check on the relayed objects (#580).

### Added
- VMagent to collect metrics from testnet storage image

### Changed
- Updated neofs-api-go to v1.27.1 release.

## [0.21.0] - 2021-06-03 - Seongmodo (석모도, 席毛島)

Session token support in container service, refactored config in storage node,
Expand Down Expand Up @@ -394,6 +522,13 @@ NeoFS-API v2.0 support and updated brand-new storage node application.

First public review release.

[Unreleased]: https://github.com/nspcc-dev/neofs-node/compare/v0.23.0...master
[0.23.0]: https://github.com/nspcc-dev/neofs-node/compare/v0.22.3...v0.23.0
[0.22.3]: https://github.com/nspcc-dev/neofs-node/compare/v0.22.2...v0.22.3
[0.22.2]: https://github.com/nspcc-dev/neofs-node/compare/v0.22.1...v0.22.2
[0.22.1]: https://github.com/nspcc-dev/neofs-node/compare/v0.22.0...v0.22.1
[0.22.0]: https://github.com/nspcc-dev/neofs-node/compare/v0.21.1...v0.22.0
[0.21.1]: https://github.com/nspcc-dev/neofs-node/compare/v0.21.0...v0.21.1
[0.21.0]: https://github.com/nspcc-dev/neofs-node/compare/v0.20.0...v0.21.0
[0.20.0]: https://github.com/nspcc-dev/neofs-node/compare/v0.19.0...v0.20.0
[0.19.0]: https://github.com/nspcc-dev/neofs-node/compare/v0.18.0...v0.19.0
Expand Down
4 changes: 4 additions & 0 deletions CREDITS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ In alphabetical order:

In chronological order:
- Pavel Karpy
- Zhang Tao
- Angira Kekteeva
- Sergio Nemirowski
- Tivizi Jing

# Special Thanks

Expand Down
27 changes: 15 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ DIRS= $(BIN)

# List of binaries to build.
CMDS = $(notdir $(basename $(wildcard cmd/*)))
CMS = $(addprefix $(BIN)/, $(CMDS))
BINS = $(addprefix $(BIN)/, $(CMDS))

.PHONY: help all dep clean fmts fmt imports test lint docker/lint
Expand Down Expand Up @@ -49,12 +48,6 @@ dep:
GO111MODULE=on \
go mod tidy -v && echo OK

test_dep:
@printf "⇒ Install test requirements: "
CGO_ENABLED=0 \
GO111MODULE=on \
go test -i ./... && echo OK

# Regenerate proto files:
protoc:
@GOPRIVATE=github.com/nspcc-dev go mod vendor
Expand All @@ -69,21 +62,31 @@ protoc:
done
rm -rf vendor

# Build NeoFS Storage Node docker image
# Build all-in-one NeoFS docker image
image-aio: images
@echo "⇒ Build NeoFS All-In-One Docker image "
@docker build \
--build-arg HUB_IMAGE=$(HUB_IMAGE) \
--build-arg HUB_TAG=$(HUB_TAG) \
--rm \
-f .docker/Dockerfile.aio \
-t $(HUB_IMAGE)-aio:$(HUB_TAG) .

# Build NeoFS component's docker image
image-%:
@echo "⇒ Build NeoFS $* docker image "
@docker build \
--build-arg REPO=$(REPO) \
--build-arg VERSION=$(VERSION) \
--rm \
-f Dockerfile.$* \
-f .docker/Dockerfile.$* \
-t $(HUB_IMAGE)-$*:$(HUB_TAG) .

# Build all Docker images
images: image-storage image-ir image-cli
images: image-storage image-ir image-cli image-adm

# Build dirty local Docker images
dirty-images: image-dirty-storage image-dirty-ir image-dirty-cli
dirty-images: image-dirty-storage image-dirty-ir image-dirty-cli image-dirty-adm

# Run all code formatters
fmts: fmt imports
Expand All @@ -99,7 +102,7 @@ imports:
@GO111MODULE=on goimports -w cmd/ pkg/ misc/

# Run Unit Test with go test
test: test_dep
test:
@echo "⇒ Running go test"
@GO111MODULE=on go test ./...

Expand Down
Loading

0 comments on commit a6e70fc

Please sign in to comment.