Compare commits

...

34 commits

Author SHA1 Message Date
cac77b7c5e
Release v1.6.5
Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
2024-11-08 15:07:39 +03:00
66273f8790
[#40] Move component versions to .env
Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
2024-11-08 15:07:39 +03:00
6e4817101d [#52] Support TLS for s3-gw
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2024-11-08 13:39:36 +03:00
fcc4b84805 Release v1.6.4
Update s3-gw to fix aws-chunked encoding

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2024-10-03 15:46:39 +03:00
52c5fb042d [#47] Add Makefile helpers for wallet management
Signed-off-by: Vitaliy Potyarkin <v.potyarkin@yadro.com>
2024-09-20 14:10:44 +00:00
539faea51e [#45] Update to the latest component releases
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-17 14:40:43 +03:00
0438608a3e [#45] Add Makefile targets to register wallet files in FrostFS ID
This is required in frostfs-node since AIO 1.6.0

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-17 14:40:43 +03:00
e1b048c013 [#44] Update binaries copy in Dockerfile.local
issue-creds.sh was not copied in Dockerfile.local
Thus `make s3cred` don't work
2024-09-11 15:06:43 +03:00
d83d797cef [#43] Support up to 1000 concurrent S3 requests
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-09 12:50:47 +03:00
00986aed8b [#42] Add region mapping for S3
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-05 14:21:02 +03:00
a75b1b66eb [#41] Bump image version
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-04 17:20:05 +03:00
abf918111f [#41] Update smart-contracts up to v0.19.3
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-04 17:20:00 +03:00
1b8a25d247 [#41] Update neo-go component
Now it requires explicit hardfork section

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-04 17:19:54 +03:00
4dcffdd5b5 [#41] Update component versions
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-04 17:19:48 +03:00
af1d79510a [#41] Fix docker warning
FromAsCasing: 'as' and 'FROM' keywords' casing do not match
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-04 17:19:41 +03:00
b35b347b3e [#41] Update credential issue process
* Register wallet key in FrostFS ID before issuing secret
* Use issue-creds script instead of Makefile command

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-04 17:19:35 +03:00
e350f078fd [#41] Add new env for new authmate command
Contains password of s3-gw service to update
policy contract data.

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-04 17:19:29 +03:00
d395ac9596 [#41] Update service configs
* Revert storage chain cache disabling due to fix in s3-gw
* Enable frostfsid validation in s3-gw by default
* Bypass content encoding checks to support minio integrations

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-09-04 17:19:17 +03:00
b36cf66356 [#41] Allow storage to use proxy wallet 2024-09-04 17:19:11 +03:00
89ecc28f2e [#30] Rework logging in the container
Signed-off-by: Roman Loginov <r.loginov@yadro.com>
2024-09-03 10:57:32 +03:00
f0c20be1b9 Prepare for v1.5.0 AIO release
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-05-27 16:24:37 +03:00
f398fb44f3 [#34] Add tree healthcheck
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2024-04-09 18:18:24 +03:00
9d79d69b1f [#34] Fix Inner Ring healthcheck command
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2024-04-09 18:14:27 +03:00
e7cb5db4fa [#33] Allow to change any frostfs binary without neo-go
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2024-02-08 15:13:46 +03:00
03bfed8e61 [#31] Update components to the latest version
Blockchain: 0.102
Storage: 0.37
Smart-contracts: 0.18
Gateways: 0.28

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-12-07 17:28:50 +03:00
ed9bc1c395 [#29] Enable HTTPS oracle in chain
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-10-30 18:01:15 +03:00
bcb0a6cc93 [#16] Add image creation from custom binaries
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-08-21 16:51:32 +03:00
8e14f0a233 [#22] Add wallet creation instructions
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-08-15 14:48:29 +03:00
5f183d3582 [#18] Support custom wallets
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-07-27 19:41:23 +03:00
c442116c4a [#15] make: Add target for building an image from local binaries
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-07-18 15:27:02 +03:00
85d1c6216b [#15] morph: Refactor the initialization
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-07-17 17:32:58 +03:00
f9e8d6f515 [#13] storage: Fix config file
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-07-13 19:02:38 +03:00
9bd7385980 [#13] Update Storage components and gateways
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
2023-07-13 19:02:09 +03:00
69b893544f [#5] Use docker compose down command to clean volumes
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-06-22 16:26:01 +03:00
45 changed files with 622 additions and 85 deletions

7
.env
View file

@ -1,3 +1,8 @@
FROSTFS_HUB_IMAGE=truecloudlab/frostfs FROSTFS_HUB_IMAGE=truecloudlab/frostfs
AIO_IMAGE=truecloudlab/frostfs-aio AIO_IMAGE=truecloudlab/frostfs-aio
AIO_VERSION=1.2.7 AIO_VERSION=1.6.5
FROSTFS_CORE_TAG=0.42.15
FROSTFS_HTTP_GATE_TAG=0.30.2
FROSTFS_S3_GATE_TAG=0.30.7
NEOGO_TAG=0.106.0

View file

@ -1,17 +1,18 @@
ARG FROSTFS_HUB_IMAGE=truecloudlab/frostfs ARG FROSTFS_HUB_IMAGE=truecloudlab/frostfs
ARG NEOGO_HUB_IMAGE=nspccdev/neo-go ARG NEOGO_HUB_IMAGE=nspccdev/neo-go
ARG FROSTFS_CORE_TAG=0beb7ccf ARG FROSTFS_CORE_TAG=dev
ARG FROSTFS_GATES_TAG=0.27.0-rc.2 ARG FROSTFS_HTTP_GATE_TAG=dev
ARG NEOGO_TAG=0.101.1 ARG FROSTFS_S3_GATE_TAG=dev
ARG NEOGO_TAG=dev
FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} as neo-go FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} AS neo-go
FROM ${FROSTFS_HUB_IMAGE}-adm:${FROSTFS_CORE_TAG} as frostfs-adm FROM ${FROSTFS_HUB_IMAGE}-adm:${FROSTFS_CORE_TAG} AS frostfs-adm
FROM ${FROSTFS_HUB_IMAGE}-cli:${FROSTFS_CORE_TAG} as frostfs-cli FROM ${FROSTFS_HUB_IMAGE}-cli:${FROSTFS_CORE_TAG} AS frostfs-cli
FROM ${FROSTFS_HUB_IMAGE}-ir:${FROSTFS_CORE_TAG} as frostfs-ir FROM ${FROSTFS_HUB_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
FROM ${FROSTFS_HUB_IMAGE}-storage:${FROSTFS_CORE_TAG} as frostfs-storage FROM ${FROSTFS_HUB_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_GATES_TAG} as frostfs-s3-gw FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_S3_GATE_TAG} AS frostfs-s3-gw
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_GATES_TAG} as frostfs-http-gw FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_HTTP_GATE_TAG} AS frostfs-http-gw
# Executable image # Executable image
FROM alpine AS frostfs-aio FROM alpine AS frostfs-aio
@ -25,8 +26,6 @@ RUN apk add --no-cache \
WORKDIR / WORKDIR /
COPY --from=neo-go /usr/bin/privnet-entrypoint.sh /usr/bin/privnet-entrypoint.sh
COPY --from=neo-go /etc/ssl/certs /etc/ssl/certs
COPY --from=neo-go /usr/bin/neo-go /usr/bin/neo-go COPY --from=neo-go /usr/bin/neo-go /usr/bin/neo-go
COPY --from=frostfs-adm /bin/frostfs-adm /usr/bin/frostfs-adm COPY --from=frostfs-adm /bin/frostfs-adm /usr/bin/frostfs-adm
COPY --from=frostfs-cli /bin/frostfs-cli /usr/bin/frostfs-cli COPY --from=frostfs-cli /bin/frostfs-cli /usr/bin/frostfs-cli
@ -41,13 +40,17 @@ COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
COPY ./ir/config.yaml /config/config-ir.yaml COPY ./ir/config.yaml /config/config-ir.yaml
COPY ./morph/protocol.privnet.yml /config/protocol.privnet.yml COPY ./morph/protocol.privnet.yml /config/protocol.privnet.yml
COPY ./morph/node-wallet.json /config/alphabet/az.json COPY ./morph/node-wallet.json /config/alphabet/az.json
COPY ./morph/node-wallet.json /config/alphabet/contract.json
COPY ./morph/node-wallet.json /config/node-wallet.json COPY ./morph/node-wallet.json /config/node-wallet.json
COPY ./morph/node-config.yaml /config/node-config.yaml COPY ./morph/node-config.yaml /config/node-config.yaml
COPY ./http-gw/http-gw-config.yaml /config/http-gw-config.yaml COPY ./http-gw/http-gw-config.yaml /config/http-gw-config.yaml
COPY ./http-gw/http-gw-wallet.json /config/http-gw-wallet.json COPY ./http-gw/http-gw-wallet.json /config/http-gw-wallet.json
COPY ./s3-gw/rules.json /config/bearer-rules.json COPY ./s3-gw/rules.json /config/bearer-rules.json
COPY ./s3-gw/regions.json /config/regions.json
COPY ./s3-gw/s3-gw-config.yaml /config/s3-gw-config.yaml COPY ./s3-gw/s3-gw-config.yaml /config/s3-gw-config.yaml
COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
COPY ./s3-gw/user-wallet.json /config/user-wallet.json COPY ./s3-gw/user-wallet.json /config/user-wallet.json
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
COPY ./sn/wallet.json /config/wallet-sn.json COPY ./sn/wallet.json /config/wallet-sn.json
@ -55,8 +58,10 @@ COPY ./sn/config.yaml /config/config-sn.yaml
COPY ./vendor/locode_db /config/locode.db COPY ./vendor/locode_db /config/locode.db
COPY ./vendor/contracts/ /config/contracts COPY ./vendor/contracts/ /config/contracts
COPY ./bin/ /config/bin COPY ./bin/init-aio.sh /usr/bin/init-aio.sh
COPY ./bin/issue-creds.sh /usr/bin/issue-creds.sh
ENV AUTHMATE_WALLET_PASSPHRASE="" ENV AUTHMATE_WALLET_PASSPHRASE=""
ENV AUTHMATE_WALLET_CONTRACT_PASSPHRASE=""
ENTRYPOINT ["/config/bin/init-aio.sh"] ENTRYPOINT ["/usr/bin/init-aio.sh"]

66
Dockerfile.custom Normal file
View file

@ -0,0 +1,66 @@
ARG FROSTFS_HUB_IMAGE=truecloudlab/frostfs
ARG NEOGO_HUB_IMAGE=nspccdev/neo-go
ARG FROSTFS_CORE_TAG
ARG FROSTFS_HTTP_GATE_TAG
ARG FROSTFS_S3_GATE_TAG
ARG NEOGO_TAG
FROM ${NEOGO_HUB_IMAGE}:${NEOGO_TAG} AS neo-go
FROM ${FROSTFS_HUB_IMAGE}-adm:${FROSTFS_CORE_TAG} AS frostfs-adm
FROM ${FROSTFS_HUB_IMAGE}-cli:${FROSTFS_CORE_TAG} AS frostfs-cli
FROM ${FROSTFS_HUB_IMAGE}-ir:${FROSTFS_CORE_TAG} AS frostfs-ir
FROM ${FROSTFS_HUB_IMAGE}-storage:${FROSTFS_CORE_TAG} AS frostfs-storage
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_S3_GATE_TAG} AS frostfs-s3-gw
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_HTTP_GATE_TAG} AS frostfs-http-gw
# Executable image
FROM alpine AS frostfs-aio
RUN apk add --no-cache \
bash \
ca-certificates \
jq \
expect \
iputils \
curl
WORKDIR /
COPY --from=neo-go /usr/bin/neo-go /usr/bin/neo-go
COPY --from=frostfs-adm /bin/frostfs-adm /usr/bin/frostfs-adm
COPY --from=frostfs-cli /bin/frostfs-cli /usr/bin/frostfs-cli
COPY --from=frostfs-ir /bin/frostfs-ir /usr/bin/frostfs-ir
COPY --from=frostfs-storage /bin/frostfs-node /usr/bin/frostfs-node
COPY --from=frostfs-s3-gw /bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
COPY --from=frostfs-s3-gw /bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
COPY --from=frostfs-http-gw /bin/frostfs-http-gw /usr/bin/frostfs-http-gw
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
COPY ./ir/config.yaml /config/config-ir.yaml
COPY ./morph/protocol.privnet.yml /config/protocol.privnet.yml
COPY ./morph/node-wallet.json /config/alphabet/az.json
COPY ./morph/node-wallet.json /config/alphabet/contract.json
COPY ./morph/node-wallet.json /config/node-wallet.json
COPY ./morph/node-config.yaml /config/node-config.yaml
COPY ./http-gw/http-gw-config.yaml /config/http-gw-config.yaml
COPY ./http-gw/http-gw-wallet.json /config/http-gw-wallet.json
COPY ./s3-gw/rules.json /config/bearer-rules.json
COPY ./s3-gw/regions.json /config/regions.json
COPY ./s3-gw/s3-gw-config.yaml /config/s3-gw-config.yaml
COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
COPY ./sn/wallet.json /config/wallet-sn.json
COPY ./sn/config.yaml /config/config-sn.yaml
COPY ./vendor/locode_db /config/locode.db
COPY ./vendor/contracts/ /config/contracts
COPY ./bin/* /usr/bin/
ENV AUTHMATE_WALLET_PASSPHRASE=""
ENV AUTHMATE_WALLET_CONTRACT_PASSPHRASE=""
ENTRYPOINT ["/usr/bin/init-aio.sh"]

51
Dockerfile.local Normal file
View file

@ -0,0 +1,51 @@
# Executable image
FROM alpine AS frostfs-aio
RUN apk add --no-cache \
bash \
ca-certificates \
jq \
expect \
iputils \
curl
WORKDIR /
COPY ./bin/neo-go /usr/bin/neo-go
COPY ./bin/frostfs-adm /usr/bin/frostfs-adm
COPY ./bin/frostfs-cli /usr/bin/frostfs-cli
COPY ./bin/frostfs-ir /usr/bin/frostfs-ir
COPY ./bin/frostfs-node /usr/bin/frostfs-node
COPY ./bin/frostfs-s3-gw /usr/bin/frostfs-s3-gw
COPY ./bin/frostfs-s3-authmate /usr/bin/frostfs-s3-authmate
COPY ./bin/frostfs-http-gw /usr/bin/frostfs-http-gw
COPY ./bin/issue-creds.sh /usr/bin/issue-creds.sh
COPY ./adm/frostfs-adm.yml /config/frostfs-adm.yml
COPY ./ir/cli-cfg.yaml /config/cli-cfg-ir.yaml
COPY ./ir/config.yaml /config/config-ir.yaml
COPY ./morph/protocol.privnet.yml /config/protocol.privnet.yml
COPY ./morph/node-wallet.json /config/alphabet/az.json
COPY ./morph/node-wallet.json /config/alphabet/contract.json
COPY ./morph/node-wallet.json /config/node-wallet.json
COPY ./morph/node-config.yaml /config/node-config.yaml
COPY ./http-gw/http-gw-config.yaml /config/http-gw-config.yaml
COPY ./http-gw/http-gw-wallet.json /config/http-gw-wallet.json
COPY ./s3-gw/rules.json /config/bearer-rules.json
COPY ./s3-gw/regions.json /config/regions.json
COPY ./s3-gw/s3-gw-config.yaml /config/s3-gw-config.yaml
COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
COPY ./s3-gw/s3-gw-tls.crt /config/s3-gw-tls.crt
COPY ./s3-gw/s3-gw-tls.key /config/s3-gw-tls.key
COPY ./s3-gw/user-wallet.json /config/user-wallet.json
COPY ./sn/cli-cfg.yaml /config/cli-cfg-sn.yaml
COPY ./sn/wallet.json /config/wallet-sn.json
COPY ./sn/config.yaml /config/config-sn.yaml
COPY ./vendor/locode_db /config/locode.db
COPY ./vendor/contracts/ /config/contracts
COPY ./bin/init-aio.sh /usr/bin/init-aio.sh
ENV AUTHMATE_WALLET_PASSPHRASE=""
ENV AUTHMATE_WALLET_CONTRACT_PASSPHRASE=""
ENTRYPOINT ["/usr/bin/init-aio.sh"]

123
Makefile
View file

@ -8,18 +8,17 @@ REPO=$(notdir $(shell pwd))
VERSION ?= "$(shell git describe --tags --match "v*" 2>/dev/null || git rev-parse --short HEAD | sed 's/^v//')" VERSION ?= "$(shell git describe --tags --match "v*" 2>/dev/null || git rev-parse --short HEAD | sed 's/^v//')"
# Variables for docker # Variables for docker
NEOGO_HUB_IMAGE ?= "nspccdev/neo-go"
NEOGO_HUB_TAG ?= "0.101.1"
FROSTFS_HUB_IMAGE ?= "truecloudlab/frostfs"
FROSTFS_CORE_TAG ?= "0beb7ccf"
FROSTFS_GATES_TAG ?= "0.27.0-rc.2"
AIO_IMAGE ?= "truecloudlab/frostfs-aio" AIO_IMAGE ?= "truecloudlab/frostfs-aio"
LOG_DIR ?= "/var/log"
# Variables for compose # Variables for compose
COMPOSE_CMD ?= docker-compose up -d COMPOSE_CMD_UP ?= docker-compose up -d
COMPOSE_CMD_DOWN ?= docker-compose down
COMPOSE_V2 = "$(shell docker compose version --short | grep -q '^2' && echo true)" COMPOSE_V2 = "$(shell docker compose version --short | grep -q '^2' && echo true)"
ifeq ($(COMPOSE_V2), "true") ifeq ($(COMPOSE_V2), "true")
COMPOSE_CMD = docker compose up -d --wait COMPOSE_CMD_UP = docker compose up -d --wait
COMPOSE_CMD_DOWN = docker compose down
endif endif
# Variables for S3 # Variables for S3
@ -28,44 +27,116 @@ S3_GATE_PUBLIC_KEY ?= "0312fe65b101565de74eedf477afb43417ff5f795732506cfddc8e044
# Build aio Docker image # Build aio Docker image
image-aio: image-aio:
@echo "⇒ Build aio docker image " @echo "⇒ Build aio docker image"
@docker build \ @docker build \
--rm \ --rm \
--build-arg FROSTFS_HUB_IMAGE=$(FROSTFS_HUB_IMAGE) \
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
--build-arg FROSTFS_GATES_TAG=$(FROSTFS_GATES_TAG) \
--build-arg NEOGO_HUB_IMAGE=$(NEOGO_HUB_IMAGE) \
--build-arg NEOGO_TAG=$(NEOGO_HUB_TAG) \
-f Dockerfile \ -f Dockerfile \
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
-t $(AIO_IMAGE):$(AIO_VERSION) .
# Build aio Docker image from all local pre-built binaries
image-aio-local:
@echo "⇒ Build aio docker image from all local pre-built binaries"
@docker build \
--rm \
-f Dockerfile.local \
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
-t $(AIO_IMAGE):$(AIO_VERSION) .
# Build aio Docker image with custom binaries
image-aio-custom:
@echo "⇒ Build aio Docker image with custom binaries"
@docker build \
--rm \
-f Dockerfile.custom \
--build-arg FROSTFS_CORE_TAG=$(FROSTFS_CORE_TAG) \
--build-arg FROSTFS_HTTP_GATE_TAG=$(FROSTFS_HTTP_GATE_TAG) \
--build-arg FROSTFS_S3_GATE_TAG=$(FROSTFS_S3_GATE_TAG) \
--build-arg NEOGO_TAG=$(NEOGO_TAG) \
-t $(AIO_IMAGE):$(AIO_VERSION) . -t $(AIO_IMAGE):$(AIO_VERSION) .
# Start AIO # Start AIO
up: up:
@$(COMPOSE_CMD) @$(COMPOSE_CMD_UP)
# Stop AIO # Stop AIO
down: down:
@docker-compose down @$(COMPOSE_CMD_DOWN)
# Clean up # Clean up
clean: clean: down
@docker volume rm frostfs-aio_data @$(COMPOSE_CMD_DOWN) --volumes
# Generate S3 credentials # Generate S3 credentials
s3cred: s3cred:
@docker exec aio /usr/bin/frostfs-s3-authmate issue-secret \ @docker exec aio /usr/bin/issue-creds.sh s3
--wallet /config/user-wallet.json \
--peer localhost:8080 \ # Generate S3 credentials based on imported wallets
--gate-public-key $(S3_GATE_PUBLIC_KEY) \ s3cred-custom:
--container-placement-policy "REP 1" \ @docker exec aio /usr/bin/issue-creds.sh s3 $(wallet)
--bearer-rules $(S3_BEARER_RULES)
# Register user-wallet.json in FrostFS ID contract
cred:
@docker exec aio /usr/bin/issue-creds.sh native
# Register custom wallet in FrostFS ID contract
cred-custom:
@docker exec aio /usr/bin/issue-creds.sh native $(wallet)
enable-oracle:
@docker exec aio neo-go contract invokefunction -r http://localhost:30333 \
--wallet-config /config/node-config.yaml \
--out /config/tx.json 49cf4e5378ffcd4dec034fd98a174c5491e395e2 designateAsRole \
int:8 [ bytes:02b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc2 ] \
-- NfgHwwTi3wHAS8aFAN243C5vGbkYDpqLHP
@docker exec aio neo-go wallet sign --in /config/tx.json \
-r http://localhost:30333 \
--wallet-config /config/node-config.yaml \
-a NfgHwwTi3wHAS8aFAN243C5vGbkYDpqLHP
# Tick new epoch in side chain # Tick new epoch in side chain
tick.epoch: tick.epoch:
@docker exec aio /usr/bin/frostfs-adm --config /config/frostfs-adm.yml morph force-new-epoch @docker exec aio /usr/bin/frostfs-adm --config /config/frostfs-adm.yml morph force-new-epoch
# Create new wallet
WALLET?=wallets/wallet1.json
.PHONY: wallet
wallet:
@! test -f "$(WALLET)" || { echo "File exists: $(WALLET)"; exit 1; }
@docker exec -it aio /usr/bin/neo-go wallet init -a -w "$(WALLET)"
# Refill GAS in arbitrary WALLET (must be under wallets/ directory)
GAS?=50.0
.PHONY: refill
refill:
@docker exec aio /usr/bin/frostfs-adm --config /config/frostfs-adm.yml \
morph refill-gas --storage-wallet=/$(WALLET) --gas=$(GAS)
@$(MAKE) --no-print-directory balance
# Show wallet balance
.PHONY: balance
balance:
@echo "Balance for $(WALLET)"
@docker exec aio /usr/bin/neo-go wallet nep17 balance -r http://localhost:30333 -w "$(WALLET)"
# Show current version # Show current version
version: version:
@echo $(VERSION) @echo "aio:" $(VERSION)
@echo "frostfs-node: $(AIO_VERSION)" @echo "frostfs-node: $(FROSTFS_CORE_TAG)"
@echo "neo-go: $(NEOGO_VERSION)" @echo "frostfs-s3-gw: $(FROSTFS_S3_GATE_TAG)"
@echo "frostfs-http-gw: $(FROSTFS_HTTP_GATE_TAG)"
@echo "neo-go: $(NEOGO_TAG)"
# Show all logs of the FrostFS service
logs/%:
@docker exec aio cat ${LOG_DIR}/$*
# Streaming of the frostFS service logs
logs-stream/%:
@docker exec aio tail -f ${LOG_DIR}/$*

190
README.md
View file

@ -16,12 +16,12 @@ Entrypoint script starts blockchain, inner ring, storage, s3, and http gateway
services and configures it in the initial start. services and configures it in the initial start.
| Service | Port | | Service | Port |
|-----------------------------|-------| |-----------------------------|------------------|
| neo-go RPC | 30333 | | neo-go RPC | 30333 |
| FrostFS Storage gRPC API | 8080 | | FrostFS Storage gRPC API | 8080 |
| FrostFS Storage Control API | 16513 | | FrostFS Storage Control API | 16513 |
| FrostFS HTTP Gateway | 8081 | | FrostFS HTTP Gateway | 8081 |
| FrostFS S3 Gateway | 8084 | | FrostFS S3 Gateway | 8084, 8184 (TLS) |
# Limitations # Limitations
@ -62,7 +62,8 @@ Data and the system configuration is stored in container's volume.
Next time container is started, it will take less time to initialize. Next time container is started, it will take less time to initialize.
Before updating image version, reset `frostfs-aio` by clearing its local volume Before updating image version, reset `frostfs-aio` by clearing its local volume
before starting container. before starting container. Update may contain incompatible changes, e.g. neo-go
database format update. This repository does not provide any migration tools.
``` ```
$ make clean $ make clean
@ -96,12 +97,44 @@ Waiting for transactions to persist...
# Build images # Build images
Build frostfs-aio image locally with this command. ## Standard image
Build frostfs-aio image with this command.
``` sh ``` sh
$ make image-aio $ make image-aio
``` ```
## Image with local binaries
Put all the needed pre-built binaries to the `frostfs-aio/bin/`:
- neo-go
- frostfs-adm
- frostfs-cli
- frostfs-ir
- frostfs-node
- frostfs-s3-gw
- frostfs-s3-authmate
- frostfs-http-gw
Make sure they all have the `x` right for the execution enabled.
Build frostfs-aio image using pre-built local binaries for all the services.
``` sh
$ make image-aio-local
```
## Image with custom binaries
This target is useful when one needs to change only a few binaries and keep the others "as is".
Put the needed binaries to `frostfs-aio/bin/`. Make sure they all have the `x` right for the
execution enabled. All the binaries will be copied to image.
``` sh
$ make image-aio-custom
```
# Simple storage # Simple storage
@ -169,16 +202,141 @@ $ aws s3api --endpoint http://localhost:8084 list-objects --bucket koty
} }
``` ```
### S3 credentials from custom wallets
Credentials made by `make s3cred` command are based on the private key from
`s3-gw/user-wallet.json` file. If you need to create credential for different
users, use wallets from `wallets` dir.
```sh
$ make s3cred-custom wallet=wallet2.json
{
"access_key_id": "jHhL5B33o16R4jQsb8wm9A3RRdS6KrTB5N4bja9Jys904W7xXFNKqem2ACvTRWRYJsZMCUikYFSokN7pPJziWyDi",
"secret_access_key": "21bb64fafa32c82417fd8b97ac56cc8a085998a3852632d52fe7042453daa440",
"owner_private_key": "10f6f9d7a47bb0bf68363ad8a99fe69f1493f8b6e1665b3e4e83feb2d5c7ee39",
"wallet_public_key": "03e38759973a6bb722baabc2dd84036a39f0b2f53d32fec45a4dacde8a50fe4b70",
"container_id": "jHhL5B33o16R4jQsb8wm9A3RRdS6KrTB5N4bja9Jys9"
}
```
To get credentials from custom wallet, place it in `wallets` dir before start.
Make sure that wallet account has empty password.
### Making a custom wallet
Command line interface of `neo-go` is used to create new wallets. Both `neo-go`
from the image or [downloaded binary](https://github.com/nspcc-dev/neo-go/releases)
can be used. We stick to the one in the image in this example.
Invoke a shell of the running container:
```bash
$ docker exec -it aio bash
```
Create a new wallet:
```bash
$ neo-go wallet init -a --wallet /wallets/new-wallet.json
```
- key `-a` means the new wallet must have an account.
- key `--wallet /wallets/new-wallet.json` sets the outputh path for the new wallet.
The image keeps wallets at `/wallets` for simplicity.
Then `neo-go` asks for the account name and its password using interactive
mode. Leave the password empty.
```bash
Enter the name of the account > Some Name
Enter new password >
Confirm password >
```
If everything is rigth, the stdout will show a pretty-printed contents of the wallet:
```bash
{
"version": "1.0",
"accounts": [
{
"address": "NapWfRshCv9T3UyGxSfPr6NKiTFa5sVwQx",
"key": "6PYKKPtBRuKvTqjAuUZk5hVDgG5aZ3HQvp1hSQg5jDyUF9JaP5Jcy3kWiV",
"label": "Some Name",
"contract": {
"script": "DCECGXJggQTMyMhYS9YtWzTP+3FbiGLn2h7za1zSNgMDkIxBVuezJw==",
"parameters": [
{
"name": "parameter0",
"type": "Signature"
}
],
"deployed": false
},
"lock": false,
"isDefault": false
}
],
"scrypt": {
"n": 16384,
"r": 8,
"p": 8
},
"extra": {
"Tokens": null
}
}
wallet successfully created, file location is /wallets/new-wallet.json
```
You can use `make wallet WALLET=wallets/new-wallet.json`
to execute the steps listed above a little faster.
### Transfering GAS tokens to wallet
To add GAS to a new wallet use `make refill`
```console
$ make refill GAS=12.3 WALLET=wallets/new-wallet.json
Waiting for transactions to persist...
Balance for wallets/new-wallet.json
Account NgB6jnyVsMg6E3gQQLXoccZ3JBMLsgiut3
GAS: GasToken (d2a4cff31913016155e38e474a2c06d08be276cf)
Amount : 12.3
Updated: 25069
```
### Checking wallet balance
```console
$ make balance WALLET=wallets/new-wallet.json
Balance for wallets/new-wallet.json
Account NgB6jnyVsMg6E3gQQLXoccZ3JBMLsgiut3
GAS: GasToken (d2a4cff31913016155e38e474a2c06d08be276cf)
Amount : 12.3
Updated: 25069
```
## frostfs-cli interface ## frostfs-cli interface
### Native credentials
To use wallet file, it should be register in FrostFS ID contract and have
policies to perform FrostFS operations.
Use `make cred` to register `s3-gw/user-wallet.json`. For custom wallets from
`wallet` dir, use `make cred-custom wallet=wallet1.json`.
These commands are similar to `make s3cred` and `make s3cred-custom`.
### Create container with frostfs-cli ### Create container with frostfs-cli
``` sh ``` sh
$ frostfs-cli -r localhost:8080 -w /config/user-wallet.json \ $ frostfs-cli -r localhost:8080 -w s3-gw/user-wallet.json \
--address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \ --address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \
container create \ container create \
--policy "REP 1" --basic-acl public-read-write --await --policy "REP 1" --await
container ID: GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46 container ID: GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46
awaiting... awaiting...
container has been persisted on sidechain container has been persisted on sidechain
@ -187,7 +345,7 @@ container has been persisted on sidechain
### Put an object with frostfs-cli ### Put an object with frostfs-cli
``` sh ``` sh
$ frostfs-cli -r localhost:8080 -w /config/user-wallet.json \ $ frostfs-cli -r localhost:8080 -w s3-gw/user-wallet.json \
--address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \ --address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \
object put \ object put \
--cid GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46 \ --cid GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46 \
@ -200,9 +358,25 @@ $ frostfs-cli -r localhost:8080 -w /config/user-wallet.json \
### Get and object with frostfs-cli ### Get and object with frostfs-cli
``` sh ``` sh
$ frostfs-cli -r localhost:8080 -w /config/user-wallet.json \ $ frostfs-cli -r localhost:8080 -w s3-gw/user-wallet.json \
--address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \ --address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \
object get \ object get \
--cid GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46 \ --cid GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46 \
--oid HByVC9A34i22BnzW3n83z9vEMxuYZoC7nNu11ZvGeCTe > new_cat.jpg --oid HByVC9A34i22BnzW3n83z9vEMxuYZoC7nNu11ZvGeCTe > new_cat.jpg
``` ```
## Viewing logs
There are two targets for viewing logs.
You can view all the logs by replacing the desired service name:
``` sh
make logs/frostfs-node
```
You can also make a continuous stream of logs by replacing the desired service name:
``` sh
make stream-logs/frostfs-node
```

View file

@ -14,7 +14,7 @@ die() {
runBlockchain() { runBlockchain() {
stage "Starting the blockchain" stage "Starting the blockchain"
/usr/bin/privnet-entrypoint.sh node --config-path /config --privnet & /usr/bin/neo-go node --config-path /config --privnet |& tee -a ${LOG_DIR}/neo-go &
while [[ "$(curl -s -o /dev/null -w %{http_code} localhost:30333)" != "422" ]]; while [[ "$(curl -s -o /dev/null -w %{http_code} localhost:30333)" != "422" ]];
do do
@ -27,21 +27,27 @@ configure() {
/usr/bin/frostfs-adm morph init --config /config/frostfs-adm.yml --contracts /config/contracts || die "Failed to initialize Alphabet wallets" /usr/bin/frostfs-adm morph init --config /config/frostfs-adm.yml --contracts /config/contracts || die "Failed to initialize Alphabet wallets"
/usr/bin/frostfs-adm --config /config/frostfs-adm.yml morph ape add-rule-chain --target-type namespace --target-name "" --rule 'allow Container.* *' --chain-id "allow_container_ops" || die "Failed to set defaul policy"
/usr/bin/frostfs-adm morph refill-gas --config /config/frostfs-adm.yml --storage-wallet /config/wallet-sn.json --gas 10.0 || die "Failed to transfer GAS to alphabet wallets" /usr/bin/frostfs-adm morph refill-gas --config /config/frostfs-adm.yml --storage-wallet /config/wallet-sn.json --gas 10.0 || die "Failed to transfer GAS to alphabet wallets"
/usr/bin/frostfs-adm morph proxy-add-account --config /config/frostfs-adm.yml --account NejLbQpojKJWec4NQRMBhzsrmCyhXfGJJe || die "Failed to set storage wallet as proxy wallet"
/usr/bin/frostfs-adm morph proxy-add-account --config /config/frostfs-adm.yml --account NN1RQ3qwnvDMVNsQw4WPkKi7BrjxdVTDZp || die "Failed to set s3 gateway wallet as proxy wallet"
} }
runServices() { runServices() {
stage "Running services" stage "Running services"
/usr/bin/frostfs-ir --config /config/config-ir.yaml & /usr/bin/frostfs-ir --config /config/config-ir.yaml |& tee -a ${LOG_DIR}/frostfs-ir &
while [[ -z "$(/usr/bin/frostfs-cli control healthcheck --ir --endpoint localhost:16512 -c /config/cli-cfg-ir.yaml | grep 'Health status: READY')" ]]; while [[ -z "$(/usr/bin/frostfs-cli control ir healthcheck --endpoint localhost:16512 -c /config/cli-cfg-ir.yaml | grep 'Health status: READY')" ]];
do do
sleep 2; sleep 2;
done done
set -m set -m
/usr/bin/frostfs-node --config /config/config-sn.yaml & /usr/bin/frostfs-node --config /config/config-sn.yaml |& tee -a ${LOG_DIR}/frostfs-node &
while [[ -z "$(/usr/bin/frostfs-cli control healthcheck --endpoint localhost:16513 -c /config/cli-cfg-sn.yaml | grep 'Health status: READY')" ]]; while [[ -z "$(/usr/bin/frostfs-cli control healthcheck --endpoint localhost:16513 -c /config/cli-cfg-sn.yaml | grep 'Health status: READY')" ]];
do do
@ -54,8 +60,13 @@ runServices() {
sleep 2 sleep 2
done done
/usr/bin/frostfs-s3-gw --config /config/s3-gw-config.yaml & while [[ -z "$(/usr/bin/frostfs-cli tree healthcheck -r 127.0.0.1:8080 -g -v | grep 'Successful healthcheck invocation')" ]];
/usr/bin/frostfs-http-gw --config /config/http-gw-config.yaml & do
sleep 2
done
/usr/bin/frostfs-s3-gw --config /config/s3-gw-config.yaml |& tee -a ${LOG_DIR}/frostfs-s3-gw &
/usr/bin/frostfs-http-gw --config /config/http-gw-config.yaml |& tee -a ${LOG_DIR}/frostfs-http-gw &
} }

35
bin/issue-creds.sh Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
initUser() {
/usr/bin/frostfs-s3-authmate register-user \
--wallet $WALLET_PATH \
--rpc-endpoint http://localhost:30333 \
--username $USERNAME \
--contract-wallet /config/s3-gw-wallet.json >/dev/null 2>&1 && touch $WALLET_CACHE/$USERNAME
}
issueAWS() {
/usr/bin/frostfs-s3-authmate issue-secret \
--wallet $WALLET_PATH \
--peer localhost:8080 \
--gate-public-key $S3_GATE_PUBLIC_KEY \
--container-placement-policy "REP 1"
}
S3_GATE_PUBLIC_KEY=$(neo-go wallet dump-keys -w /config/s3-gw-wallet.json | tail -1)
WALLET_PATH=/wallets/$2
if [[ -z "$2" ]]; then
WALLET_PATH=/config/user-wallet.json
fi
WALLET_CACHE=/data/wallets
mkdir -p $WALLET_CACHE
USERNAME=$(echo $WALLET_PATH | md5sum | cut -d' ' -f1)
if [ ! -e $WALLET_CACHE/$USERNAME ]; then
initUser
fi
if [ $1 == "s3" ]; then
issueAWS
fi

View file

@ -15,13 +15,17 @@ services:
retries: 100 retries: 100
start_period: 2s start_period: 2s
timeout: 2s timeout: 2s
environment:
- LOG_DIR=/var/log
volumes: volumes:
- data:/data - data:/data
- ./wallets:/wallets
ports: ports:
- "8081:8081" # HTTP Gateway - "8081:8081" # HTTP Gateway
- "30333:30333" # RPC - "30333:30333" # RPC
- "8080:8080" # FrostFS API RPC - "8080:8080" # FrostFS API RPC
- "8084:8084" # S3 Gateway - "8084:8084" # S3 Gateway
- "8184:8184" # S3 Gateway with TLS
- "16513:16513" # Control service - "16513:16513" # Control service
volumes: volumes:

View file

@ -29,7 +29,7 @@ wallet:
peers: peers:
0: 0:
address: grpc://localhost:8080 address: localhost:8080
priority: 1 priority: 1
weight: 1 weight: 1

View file

@ -11,6 +11,7 @@ ProtocolConfiguration:
VerifyTransactions: true VerifyTransactions: true
StateRootInHeader: true StateRootInHeader: true
P2PSigExtensions: true P2PSigExtensions: true
Hardforks: {}
ApplicationConfiguration: ApplicationConfiguration:
SkipBlockVerification: false SkipBlockVerification: false
@ -29,6 +30,11 @@ ApplicationConfiguration:
AttemptConnPeers: 5 AttemptConnPeers: 5
MinPeers: 0 MinPeers: 0
Relay: true Relay: true
Consensus:
Enabled: true
UnlockWallet:
Path: "/config/node-wallet.json"
Password: "one"
RPC: RPC:
Addresses: Addresses:
- ":30333" - ":30333"
@ -49,6 +55,10 @@ ApplicationConfiguration:
Addresses: Addresses:
- ":20011" - ":20011"
Enabled: false Enabled: false
Oracle:
Enabled: true
Nodes:
- http://127.0.0.1:30333
UnlockWallet: UnlockWallet:
Path: "/config/node-wallet.json" Path: "/config/node-wallet.json"
Password: "one" Password: "one"

4
s3-gw/regions.json Normal file
View file

@ -0,0 +1,4 @@
{
"us-east-1": "REP 1",
"us-west-1": "REP 1"
}

View file

@ -11,13 +11,15 @@ peers:
server: server:
- address: 0.0.0.0:8084 - address: 0.0.0.0:8084
- address: 0.0.0.0:8184
tls:
enabled: true
cert_file: /config/s3-gw-tls.crt
key_file: /config/s3-gw-tls.key
logger: logger:
level: debug level: debug
tree:
service: localhost:8080
rpc_endpoint: http://localhost:30333 rpc_endpoint: http://localhost:30333
resolve_order: resolve_order:
- nns - nns
@ -35,7 +37,7 @@ stream_timeout: 10s
healthcheck_timeout: 15s healthcheck_timeout: 15s
rebalance_interval: 60s rebalance_interval: 60s
pool_error_threshold: 100 pool_error_threshold: 100
max_clients_count: 100 max_clients_count: 1000
max_clients_deadline: 30s max_clients_deadline: 30s
cache: cache:
@ -63,5 +65,16 @@ cache:
placement_policy: placement_policy:
default: REP 1 default: REP 1
region_mapping: /config/regions.json
features:
md5:
enabled: true
control:
grpc:
endpoint: localhost:16515
kludge:
use_default_xmlns: true
bypass_content_encoding_check_in_chunks: true

36
s3-gw/s3-gw-tls.crt Normal file
View file

@ -0,0 +1,36 @@
-----BEGIN CERTIFICATE-----
MIIGOzCCBCOgAwIBAgIUYWyZ9RMzV7CIRScF85cb8kmjUK4wDQYJKoZIhvcNAQEL
BQAwgawxCzAJBgNVBAYTAlJVMRkwFwYDVQQIDBBTYWludCBQZXRlcnNidXJnMRcw
FQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEXMBUGA1UECgwOVHJ1ZSBDbG91ZCBMYWIx
FzAVBgNVBAsMDlRydWUgQ2xvdWQgTGFiMRUwEwYDVQQDDAxmcm9zdGZzLmluZm8x
IDAeBgkqhkiG9w0BCQEWEWluZm9AZnJvc3Rmcy5pbmZvMB4XDTI0MTEwODA5MzQ0
MFoXDTM0MTEwNjA5MzQ0MFowgawxCzAJBgNVBAYTAlJVMRkwFwYDVQQIDBBTYWlu
dCBQZXRlcnNidXJnMRcwFQYDVQQHDA5TdC4gUGV0ZXJzYnVyZzEXMBUGA1UECgwO
VHJ1ZSBDbG91ZCBMYWIxFzAVBgNVBAsMDlRydWUgQ2xvdWQgTGFiMRUwEwYDVQQD
DAxmcm9zdGZzLmluZm8xIDAeBgkqhkiG9w0BCQEWEWluZm9AZnJvc3Rmcy5pbmZv
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz6tgNXMCc6MGrI/2r/Il
sF4Nr6/RkX1kti+hH/3azbheaTD7rYqrP37F/qFoeRY6jXYzW1Bwhq5jqrUeqnDD
NsY6Gpedn2HJjD1A1zq96Sv3SU8gT0WsSArDaCQW9joYfIlKTjOBS1WBJbWfNEqX
R2ld6/L/x5DoyNJ5+DkdnT+lj1sCCy4uKIDgrM92v6O5MHCjZk6Tp9t5t64EboXH
Wz3gJHCdK76VstSWCJ6Huw6rHcqKTbolZy0CiM9G5m6XeBD7G/28iM9k17KkwZ2T
8w6IKRyrfknl/vPjLKWC3Nj5eJTQuucpLBIs/wK+jgABQYIYzejguj5HPqnSUQ6d
u7UbOWBgOppzkyKJyXY5qJbgZlsMp/lkcDyoyLwGL6+ucz6f5vW72aDHrX3+p5/7
HLbI7phK48OchcMMn9MG0dOZ/vhhvTQ2nNBza905ZZQRQt/AucC1nyCfyTlG5bjb
16EdDbDu0o2PFZqHI0rx/Ytw2FFg6J4PCImxxetimOr1TomcdcvdxdJNqPTTrB9J
fRoh7w1HIxBwXToJ2eUz3kfvI920Jxad8VxcAWVctO2MfDQ1uSUnvqouEswUGPdx
ifpOHcj24b7uDn8g015d/p3yDSEZzxVC6Uw6xZ9dt9CZDtQBDLrno8aAc1xYMmci
J9Q94FepyhV4tg8IwnyIljECAwEAAaNTMFEwHQYDVR0OBBYEFHSkza/3e5y8v9T+
BjBej6ZgqtoHMB8GA1UdIwQYMBaAFHSkza/3e5y8v9T+BjBej6ZgqtoHMA8GA1Ud
EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAIYOmcqr+gwbY0zIREcoovBw
z4K5uR1OYY1+HzhzvJHCuFpssCMEjCFQjs5lD726ASFhEYaPaLuDiXtdn2u5QpQd
KwO98HDpC5jVb77Z8Bthf0eKrqzjbr+m7WFa22CPgyav8vGlQ+sv1+4HjHclkeW8
CEtf4k6YjM3//C03JN93Yvsu4zmGbFLkSUVujwLOx/LzF+PbWv6d6tbP8QNufaBx
vk74xc8icHBkyNnYhUddBXimpJEKAbGiF13Hf6M0Lbx/m8QIQ9P4VVR8FYdygYh3
n7O7Ivusae3M+fapSYODwtp3OVC6lz07wC0+m+G08h7YBwcC7z+BofFawtilZuRg
bbtoy5PhQTSpLzYOUtJOA5ihM3EqXR4k4/oeitNF78ZZI27p8z2g6YJY9Mjk+AfL
f6jaBCSqJnnPB8NQtLN6VI2C3Q9/glhUkHLZkHs8DMxZsf+PpqjssU5kZGf0Viha
BCeClyHpK/sOWOYTKfprRtfcVEYmW7favXkhdfG3QaWc8bkpvfw7ZEVmfkUJ2iUB
xJ279uDAdnPcqA43Nw6BtRhxV5AVNfAOSzpsH9MIjRes5RS2FcAs/qt9p7ciCh3Z
QsrnZHUvbgpaWMJimS9bxcXAvWwGhjve/OUmpeXMrjrJfsRtjuK/w4sT9wXZUrbj
zp1TkSmKv3w1aF3xTsOv
-----END CERTIFICATE-----

52
s3-gw/s3-gw-tls.key Normal file
View file

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDPq2A1cwJzowas
j/av8iWwXg2vr9GRfWS2L6Ef/drNuF5pMPutiqs/fsX+oWh5FjqNdjNbUHCGrmOq
tR6qcMM2xjoal52fYcmMPUDXOr3pK/dJTyBPRaxICsNoJBb2Ohh8iUpOM4FLVYEl
tZ80SpdHaV3r8v/HkOjI0nn4OR2dP6WPWwILLi4ogOCsz3a/o7kwcKNmTpOn23m3
rgRuhcdbPeAkcJ0rvpWy1JYInoe7DqsdyopNuiVnLQKIz0bmbpd4EPsb/byIz2TX
sqTBnZPzDogpHKt+SeX+8+MspYLc2Pl4lNC65yksEiz/Ar6OAAFBghjN6OC6Pkc+
qdJRDp27tRs5YGA6mnOTIonJdjmoluBmWwyn+WRwPKjIvAYvr65zPp/m9bvZoMet
ff6nn/sctsjumErjw5yFwwyf0wbR05n++GG9NDac0HNr3TlllBFC38C5wLWfIJ/J
OUbluNvXoR0NsO7SjY8VmocjSvH9i3DYUWDong8IibHF62KY6vVOiZx1y93F0k2o
9NOsH0l9GiHvDUcjEHBdOgnZ5TPeR+8j3bQnFp3xXFwBZVy07Yx8NDW5JSe+qi4S
zBQY93GJ+k4dyPbhvu4OfyDTXl3+nfINIRnPFULpTDrFn1230JkO1AEMuuejxoBz
XFgyZyIn1D3gV6nKFXi2DwjCfIiWMQIDAQABAoICAQC5u3ailygcMDRp5aAmIJYg
tR3cgY0XaGTIpLSgnjQxRbH6trqBrcIXWdTPNaDwmzbnCk5IXxsk+ZdeN/sjSRLv
TD7vRabNw3G1IZt6Y6kygAX85O3quE+rZyT5YT3AHpmD2G5CnsIGlISbK2MmK4g9
cDl2K7Ej1bC827IGlV6tIx15p1WelkDmLM3FARAdudqJPlSFzcU1nY+w/cws5S01
p5NuQ+HuG9hbRtKhBtgyLp5QWLN1bQTC0Hixz2CD+2kxE07i6/7RBVwVpkrAd6S4
/8g7rM6cdo9jhNErPyRZTR1iAQbmApTKO79OnC+9ZLe61RZGIv/K0qR5oPzfTgk3
Gb1lOo36jdBFRNr9wwON726W4pyrMIRURe2zDqfa3SMeSK++6MSxQiam1KXh8C2y
3qa6uWHGrrVrQJQUwXEpE1jonJ43GWNmds1cYD0Mhu/vzicwuOiw9VAtiskYm848
XgIgq5fQoO0lWe2mVfqXfmX4ANwQ3Cw5GaZI8ZbbEJtgSv1NOt6MzIEgNrMjtXGT
B3AG1gwUxf7i6fYCwR6YVDw5F9ze+3BheFiaANVzZ1MGw6RCbDGV0a74ncRAYdGc
N2QFoRY8W0eCYWkqVsDzhITJ2g3/bG5cN/9jD+r3R9ACHf7z7xFCQYEZC5p3+mT0
+MvV1F0p94tHetokAMD6mQKCAQEA7z0olJxdVEbnLFabz1VBYFYpNE/FriQCl1in
Cgdvfd3QOER0UdcpUct7j51dBO4LnGCzCVf8R4CVnUuHqA+CDlezDF1aBZVDdVoH
ICpdeKwiUDsdijAnVvXqjo9aWaS+Elscz+hnbsTq0KTJOGasJLcPmG84oBEInofT
0hLpctS7ZksZc7KcX2dpD3E/x7uWnlgH4fO663K/IybUY/c62CcvOy3L0+w7D8/2
rKqD0tdK1QGTjStdx9MRnP5e96KN3OmvK4wbzqoyYc5Yqoc0EN53O7vedGy/IULM
2cnoqT+bFtdILNYIXr9+04Sf0HDnABq3ADY4NUEgyZfv+jANxwKCAQEA3jgBwRpd
BHBs3y6HTyIse4lPwrbHa2hhF57vfjfWOpx/261kyLjof3KsgV8WbjlZaTDfSfTr
+PfqJX7BDfu6tB7pKjCogXjPXcpV6HUQLaY+hY0BSVtZCAk6MG5qrCaC10Y7NRJ9
STwQJoq6j+gR2VdsyCAbamGpalLXRh1TG0MnNI3Qw+iRHNCwLY6K4J6/kG8S938R
7/PbP7ylIBi0XtLlGD+FDoNt851Rg2fPr9uk+mwWFAHJEjP3UZotK+LN/TGSYV9b
3IY40zTrt78pWwgdXXvyhZw0U0G3u7BpVXTavk2DHsCDYWFCd1LK6umLiopdN/T/
H3H20NHiFrUcRwKCAQBrFA+WvInVT8rmgHlKilkxmj7lCBNthvaV8PsKtRtE1cP9
ez4o50m6L35FYGSi8TzHKEzaEMR86GOOvKCiKxbF/qDIFvxU5WMFIl9wGSYu/bR5
/ouRL05cUMNEPYtt9huQsbEqqVWqMX78FdVuZh4EbN8RFi7dDeKyug6nxwkv+WFL
Pq/MphPxa6KNY93tMtwOUU5t5p4yBfDg9d84Qw7WcmtkbHH/j4s735QD4moQM4Zt
4j+9fryB1MncX8n3wo0GZJ2fux0zGeBlAGuVH+DA8CGj3cmKiKXfaDux+vokzrBG
v+KxFrc2WTWVzJWPQQlTdaGU+a+cvmLDeDrT2zA/AoIBAQC/U2VfRz2TFuEF/1+M
qJW3/29m7EwilAoUdkkpWRXf/OKw10eQ8nNrV+ZitOXxHPt4cBWv7WpGP92fTtUV
HwmPD5YdNyu93bBcxlrU/AVj6GCoR9E1waqUGq25CTha5AV/J/7OIQ8xwL7/EC60
vFCx2m3UmKBCJbfhzVWADruBG35j5z45jsFyF9O4RaQY5VV2G8wuv39II6M/60IY
smyJv/ZzvCzpZAuE1oxaIUVV2jzfR7RyoV7nh0qHPcFqqapFNysbHylOY1oFrujM
mZAXypLN7GvQ0b7TeB+jP65RX3z+oGomTgZQD5dUeTowq8fzDlJYXV5TSqIBBNQu
TNz9AoIBAELhsEeQucMagn0hFKY5WgxIYF27UjYZVzpt78SKyKjwka0CqDFrCwM+
KF80TiAfqMBLD27UpYM9ylwv56e2ZLMWZb/Z0y25jlRC3ctSyRPFyLC6dRgZ1IVA
pDsh06uxJhBcZyJC1KKMShdfgV37TQC4qlpqAnDyN39TQH0rr7g9EOzUrOk1tclU
mnuUD5wTL5vx7h0mpTSJxf8r6D17i5loWYfi+tp4V7wibVrr7QNh7KWZ5Ww24Rmc
LZBtCAKI6Eoac9SOmtpDHW8l8istyNNCqrvU+xtwAnguRbo71rE18j+y11PPhqxn
4y2gRqQJl4QzugozyY0+9DKux/FDFfM=
-----END PRIVATE KEY-----

View file

@ -22,7 +22,7 @@ grpc:
0: 0:
endpoint: 0.0.0.0:8080 endpoint: 0.0.0.0:8080
tls: tls:
enables: false enabled: false
logger: logger:
level: debug level: debug
@ -37,6 +37,7 @@ pprof:
storage: storage:
shard_num: 1 shard_num: 1
shard_pool_size: 1000
shard: shard:
0: 0:
writecache: writecache:
@ -65,6 +66,4 @@ tree:
object: object:
put: put:
pool_size_remote: 100 local_pool_size: 1000
pool_size_local: 100

Binary file not shown.

View file

@ -1 +1 @@
{"name":"Alphabet","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"emit","offset":1191,"parameters":[],"returntype":"Void","safe":false},{"name":"gas","offset":1010,"parameters":[],"returntype":"Integer","safe":true},{"name":"name","offset":1813,"parameters":[],"returntype":"String","safe":true},{"name":"neo","offset":1024,"parameters":[],"returntype":"Integer","safe":true},{"name":"onNEP17Payment","offset":741,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":878,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1829,"parameters":[],"returntype":"Integer","safe":true},{"name":"vote","offset":1650,"parameters":[{"name":"epoch","type":"Integer"},{"name":"candidates","type":"Array"}],"returntype":"Void","safe":false}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer","vote"]}],"supportedstandards":[],"trusts":[],"extra":null} {"name":"Alphabet","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"emit","offset":1038,"parameters":[],"returntype":"Void","safe":false},{"name":"gas","offset":859,"parameters":[],"returntype":"Integer","safe":true},{"name":"name","offset":1660,"parameters":[],"returntype":"String","safe":true},{"name":"neo","offset":873,"parameters":[],"returntype":"Integer","safe":true},{"name":"onNEP17Payment","offset":627,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":764,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1676,"parameters":[],"returntype":"Integer","safe":true},{"name":"vote","offset":1497,"parameters":[{"name":"epoch","type":"Integer"},{"name":"candidates","type":"Array"}],"returntype":"Void","safe":false}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer","vote"]}],"supportedstandards":[],"trusts":[],"extra":null}

Binary file not shown.

View file

@ -1 +0,0 @@
{"name":"Audit","abi":{"methods":[{"name":"_deploy","offset":0,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"get","offset":886,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"list","offset":911,"parameters":[],"returntype":"Array","safe":true},{"name":"listByCID","offset":977,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listByEpoch","offset":945,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"listByNode","offset":1020,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"},{"name":"key","type":"PublicKey"}],"returntype":"Array","safe":true},{"name":"put","offset":735,"parameters":[{"name":"rawAuditResult","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":606,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1160,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}

Binary file not shown.

View file

@ -1 +1 @@
{"name":"Balance","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":93,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":988,"parameters":[{"name":"account","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"burn","offset":1522,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"decimals","offset":966,"parameters":[],"returntype":"Integer","safe":true},{"name":"lock","offset":1131,"parameters":[{"name":"txDetails","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}],"returntype":"Void","safe":false},{"name":"mint","offset":1387,"parameters":[{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"newEpoch","offset":1263,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"symbol","offset":962,"parameters":[],"returntype":"String","safe":true},{"name":"totalSupply","offset":970,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":1007,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"transferX","offset":1033,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":831,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1687,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Lock","parameters":[{"name":"txID","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}]},{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"}]},{"name":"TransferX","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}]},{"name":"Mint","parameters":[{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"}]},{"name":"Burn","parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":["NEP-17"],"trusts":[],"extra":null} {"name":"Balance","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":93,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":903,"parameters":[{"name":"account","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"burn","offset":1427,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"decimals","offset":881,"parameters":[],"returntype":"Integer","safe":true},{"name":"lock","offset":1042,"parameters":[{"name":"txDetails","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}],"returntype":"Void","safe":false},{"name":"mint","offset":1294,"parameters":[{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"newEpoch","offset":1172,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"symbol","offset":877,"parameters":[],"returntype":"String","safe":true},{"name":"totalSupply","offset":885,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":922,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"transferX","offset":946,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":783,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1590,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Lock","parameters":[{"name":"txID","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}]},{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"}]},{"name":"TransferX","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}]},{"name":"Mint","parameters":[{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"}]},{"name":"Burn","parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":["NEP-17"],"trusts":[],"extra":null}

View file

@ -1 +1 @@
{"name":"Container","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":83,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"containersOf","offset":2867,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"InteropInterface","safe":true},{"name":"count","offset":2822,"parameters":[],"returntype":"Integer","safe":true},{"name":"delete","offset":2422,"parameters":[{"name":"containerID","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"eACL","offset":3167,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"get","offset":2709,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getContainerSize","offset":3429,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"iterateContainerSizes","offset":3630,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"InteropInterface","safe":true},{"name":"list","offset":2921,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listContainerSizes","offset":3469,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"newEpoch","offset":3682,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"onNEP11Payment","offset":1046,"parameters":[{"name":"a","type":"Hash160"},{"name":"b","type":"Integer"},{"name":"c","type":"ByteArray"},{"name":"d","type":"Any"}],"returntype":"Void","safe":false},{"name":"owner","offset":2771,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"put","offset":1331,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"putContainerSize","offset":3225,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"},{"name":"usedSize","type":"Integer"},{"name":"pubKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"putNamed","offset":1347,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"},{"name":"name","type":"String"},{"name":"zone","type":"String"}],"returntype":"Void","safe":false},{"name":"setEACL","offset":3017,"parameters":[{"name":"eACL","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"startContainerEstimation","offset":3705,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"stopContainerEstimation","offset":3779,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"update","offset":1198,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":3852,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"containerPut","parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}]},{"name":"PutSuccess","parameters":[{"name":"containerID","type":"Hash256"},{"name":"publicKey","type":"PublicKey"}]},{"name":"containerDelete","parameters":[{"name":"containerID","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"token","type":"ByteArray"}]},{"name":"DeleteSuccess","parameters":[{"name":"containerID","type":"ByteArray"}]},{"name":"setEACL","parameters":[{"name":"eACL","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}]},{"name":"SetEACLSuccess","parameters":[{"name":"containerID","type":"ByteArray"},{"name":"publicKey","type":"PublicKey"}]},{"name":"StartEstimation","parameters":[{"name":"epoch","type":"Integer"}]},{"name":"StopEstimation","parameters":[{"name":"epoch","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","addKey","transferX","register","addRecord","deleteRecords"]}],"supportedstandards":[],"trusts":[],"extra":null} {"name":"Container","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":83,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"containersOf","offset":2618,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"InteropInterface","safe":true},{"name":"count","offset":2573,"parameters":[],"returntype":"Integer","safe":true},{"name":"delete","offset":2071,"parameters":[{"name":"containerID","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"deletionInfo","offset":2358,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"eACL","offset":2918,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"get","offset":2460,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getContainerSize","offset":3178,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"iterateContainerSizes","offset":3379,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"InteropInterface","safe":true},{"name":"list","offset":2672,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listContainerSizes","offset":3218,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"newEpoch","offset":3431,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"onNEP11Payment","offset":833,"parameters":[{"name":"a","type":"Hash160"},{"name":"b","type":"Integer"},{"name":"c","type":"ByteArray"},{"name":"d","type":"Any"}],"returntype":"Void","safe":false},{"name":"owner","offset":2522,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"put","offset":1075,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"putContainerSize","offset":2976,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"},{"name":"usedSize","type":"Integer"},{"name":"pubKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"putNamed","offset":1091,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"},{"name":"name","type":"String"},{"name":"zone","type":"String"}],"returntype":"Void","safe":false},{"name":"setEACL","offset":2768,"parameters":[{"name":"eACL","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"startContainerEstimation","offset":3454,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"stopContainerEstimation","offset":3528,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"update","offset":979,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":3601,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"PutSuccess","parameters":[{"name":"containerID","type":"Hash256"},{"name":"publicKey","type":"PublicKey"}]},{"name":"DeleteSuccess","parameters":[{"name":"containerID","type":"ByteArray"}]},{"name":"SetEACLSuccess","parameters":[{"name":"containerID","type":"ByteArray"},{"name":"publicKey","type":"PublicKey"}]},{"name":"StartEstimation","parameters":[{"name":"epoch","type":"Integer"}]},{"name":"StopEstimation","parameters":[{"name":"epoch","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["addRecord","deleteRecords","register","transferX","update"]}],"supportedstandards":[],"trusts":[],"extra":null}

Binary file not shown.

View file

@ -1 +1 @@
{"name":"FrostFS","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":74,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"alphabetAddress","offset":1028,"parameters":[],"returntype":"Hash160","safe":true},{"name":"bind","offset":2294,"parameters":[{"name":"user","type":"ByteArray"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"cheque","offset":2172,"parameters":[{"name":"id","type":"ByteArray"},{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"lockAcc","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"config","offset":2574,"parameters":[{"name":"key","type":"ByteArray"}],"returntype":"Any","safe":true},{"name":"innerRingCandidateAdd","offset":1295,"parameters":[{"name":"key","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"innerRingCandidateRemove","offset":1121,"parameters":[{"name":"key","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"innerRingCandidates","offset":1049,"parameters":[],"returntype":"Array","safe":true},{"name":"listConfig","offset":2678,"parameters":[],"returntype":"Array","safe":true},{"name":"onNEP17Payment","offset":1545,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"setConfig","offset":2592,"parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"val","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"unbind","offset":2433,"parameters":[{"name":"user","type":"ByteArray"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"update","offset":906,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":2760,"parameters":[],"returntype":"Integer","safe":true},{"name":"withdraw","offset":1878,"parameters":[{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"}],"returntype":"Void","safe":false}],"events":[{"name":"Deposit","parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"receiver","type":"Hash160"},{"name":"txHash","type":"Hash256"}]},{"name":"Withdraw","parameters":[{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txHash","type":"Hash256"}]},{"name":"Cheque","parameters":[{"name":"id","type":"ByteArray"},{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"lockAccount","type":"ByteArray"}]},{"name":"Bind","parameters":[{"name":"user","type":"ByteArray"},{"name":"keys","type":"Array"}]},{"name":"Unbind","parameters":[{"name":"user","type":"ByteArray"},{"name":"keys","type":"Array"}]},{"name":"AlphabetUpdate","parameters":[{"name":"id","type":"ByteArray"},{"name":"alphabet","type":"Array"}]},{"name":"SetConfig","parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"value","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer"]}],"supportedstandards":[],"trusts":[],"extra":null} {"name":"FrostFS","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":74,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"bind","offset":2084,"parameters":[{"name":"user","type":"ByteArray"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"cheque","offset":1962,"parameters":[{"name":"id","type":"ByteArray"},{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"lockAcc","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"config","offset":2364,"parameters":[{"name":"key","type":"ByteArray"}],"returntype":"Any","safe":true},{"name":"innerRingCandidateAdd","offset":1085,"parameters":[{"name":"key","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"innerRingCandidateRemove","offset":911,"parameters":[{"name":"key","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"innerRingCandidates","offset":839,"parameters":[],"returntype":"Array","safe":true},{"name":"listConfig","offset":2468,"parameters":[],"returntype":"Array","safe":true},{"name":"onNEP17Payment","offset":1335,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"setConfig","offset":2382,"parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"val","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"unbind","offset":2223,"parameters":[{"name":"user","type":"ByteArray"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"update","offset":756,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":2550,"parameters":[],"returntype":"Integer","safe":true},{"name":"withdraw","offset":1668,"parameters":[{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"}],"returntype":"Void","safe":false}],"events":[{"name":"Deposit","parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"receiver","type":"Hash160"},{"name":"txHash","type":"Hash256"}]},{"name":"Withdraw","parameters":[{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txHash","type":"Hash256"}]},{"name":"Cheque","parameters":[{"name":"id","type":"ByteArray"},{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"lockAccount","type":"ByteArray"}]},{"name":"Bind","parameters":[{"name":"user","type":"ByteArray"},{"name":"keys","type":"Array"}]},{"name":"Unbind","parameters":[{"name":"user","type":"ByteArray"},{"name":"keys","type":"Array"}]},{"name":"AlphabetUpdate","parameters":[{"name":"id","type":"ByteArray"},{"name":"alphabet","type":"Array"}]},{"name":"SetConfig","parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"value","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer"]}],"supportedstandards":[],"trusts":[],"extra":null}

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -1 +1 @@
{"name":"Netmap","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":93,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addPeer","offset":1111,"parameters":[{"name":"nodeInfo","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"addPeerIR","offset":1071,"parameters":[{"name":"nodeInfo","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"config","offset":2507,"parameters":[{"name":"key","type":"ByteArray"}],"returntype":"Any","safe":true},{"name":"epoch","offset":1692,"parameters":[],"returntype":"Integer","safe":true},{"name":"lastEpochBlock","offset":1731,"parameters":[],"returntype":"Integer","safe":false},{"name":"listConfig","offset":2586,"parameters":[],"returntype":"Array","safe":true},{"name":"netmap","offset":1770,"parameters":[],"returntype":"Array","safe":true},{"name":"netmapCandidates","offset":1852,"parameters":[],"returntype":"Array","safe":true},{"name":"newEpoch","offset":1408,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"setConfig","offset":2525,"parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"val","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"snapshot","offset":1868,"parameters":[{"name":"diff","type":"Integer"}],"returntype":"Array","safe":true},{"name":"snapshotByEpoch","offset":2459,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"update","offset":941,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"updateSnapshotCount","offset":2022,"parameters":[{"name":"count","type":"Integer"}],"returntype":"Void","safe":false},{"name":"updateState","offset":1317,"parameters":[{"name":"state","type":"Integer"},{"name":"publicKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"updateStateIR","offset":1384,"parameters":[{"name":"state","type":"Integer"},{"name":"publicKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"version","offset":2668,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"AddPeer","parameters":[{"name":"nodeInfo","type":"ByteArray"}]},{"name":"AddPeerSuccess","parameters":[{"name":"publicKey","type":"PublicKey"}]},{"name":"UpdateState","parameters":[{"name":"state","type":"Integer"},{"name":"publicKey","type":"PublicKey"}]},{"name":"UpdateStateSuccess","parameters":[{"name":"publicKey","type":"PublicKey"},{"name":"state","type":"Integer"}]},{"name":"NewEpoch","parameters":[{"name":"epoch","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","newEpoch"]}],"supportedstandards":[],"trusts":[],"extra":null} {"name":"Netmap","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":93,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addPeer","offset":960,"parameters":[{"name":"nodeInfo","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"addPeerIR","offset":920,"parameters":[{"name":"nodeInfo","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"config","offset":2356,"parameters":[{"name":"key","type":"ByteArray"}],"returntype":"Any","safe":true},{"name":"epoch","offset":1541,"parameters":[],"returntype":"Integer","safe":true},{"name":"lastEpochBlock","offset":1580,"parameters":[],"returntype":"Integer","safe":false},{"name":"listConfig","offset":2435,"parameters":[],"returntype":"Array","safe":true},{"name":"netmap","offset":1619,"parameters":[],"returntype":"Array","safe":true},{"name":"netmapCandidates","offset":1701,"parameters":[],"returntype":"Array","safe":true},{"name":"newEpoch","offset":1257,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"setConfig","offset":2374,"parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"val","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"snapshot","offset":1717,"parameters":[{"name":"diff","type":"Integer"}],"returntype":"Array","safe":true},{"name":"snapshotByEpoch","offset":2308,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"update","offset":827,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"updateSnapshotCount","offset":1871,"parameters":[{"name":"count","type":"Integer"}],"returntype":"Void","safe":false},{"name":"updateState","offset":1166,"parameters":[{"name":"state","type":"Integer"},{"name":"publicKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"updateStateIR","offset":1233,"parameters":[{"name":"state","type":"Integer"},{"name":"publicKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"version","offset":2517,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"AddPeer","parameters":[{"name":"nodeInfo","type":"ByteArray"}]},{"name":"AddPeerSuccess","parameters":[{"name":"publicKey","type":"PublicKey"}]},{"name":"UpdateState","parameters":[{"name":"state","type":"Integer"},{"name":"publicKey","type":"PublicKey"}]},{"name":"UpdateStateSuccess","parameters":[{"name":"publicKey","type":"PublicKey"},{"name":"state","type":"Integer"}]},{"name":"NewEpoch","parameters":[{"name":"epoch","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","newEpoch"]}],"supportedstandards":[],"trusts":[],"extra":null}

Binary file not shown.

View file

@ -1 +1 @@
{"name":"NameService","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":32,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addRecord","offset":2591,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":568,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"decimals","offset":479,"parameters":[],"returntype":"Integer","safe":true},{"name":"deleteRecords","offset":2726,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Void","safe":false},{"name":"getAllRecords","offset":2882,"parameters":[{"name":"name","type":"String"}],"returntype":"InteropInterface","safe":false},{"name":"getPrice","offset":976,"parameters":[],"returntype":"Integer","safe":true},{"name":"getRecords","offset":2683,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"isAvailable","offset":1010,"parameters":[{"name":"name","type":"String"}],"returntype":"Boolean","safe":true},{"name":"ownerOf","offset":501,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Hash160","safe":true},{"name":"properties","offset":523,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Map","safe":true},{"name":"register","offset":1281,"parameters":[{"name":"name","type":"String"},{"name":"owner","type":"Hash160"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Boolean","safe":false},{"name":"renew","offset":2048,"parameters":[{"name":"name","type":"String"}],"returntype":"Integer","safe":false},{"name":"resolve","offset":2860,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"roots","offset":870,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"setAdmin","offset":2259,"parameters":[{"name":"name","type":"String"},{"name":"admin","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"setPrice","offset":898,"parameters":[{"name":"price","type":"Integer"}],"returntype":"Void","safe":false},{"name":"setRecord","offset":2393,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"id","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"symbol","offset":473,"parameters":[],"returntype":"String","safe":true},{"name":"tokens","offset":644,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"tokensOf","offset":673,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"InteropInterface","safe":true},{"name":"totalSupply","offset":485,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":735,"parameters":[{"name":"to","type":"Hash160"},{"name":"tokenID","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"update","offset":386,"parameters":[{"name":"nef","type":"ByteArray"},{"name":"manifest","type":"String"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"updateSOA","offset":2169,"parameters":[{"name":"name","type":"String"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Void","safe":false},{"name":"version","offset":481,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"tokenId","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"0xfffdc93764dbaddd97c48f252a53ea4643faa3fd","methods":["update"]},{"contract":"*","methods":["onNEP11Payment"]}],"supportedstandards":["NEP-11"],"trusts":[],"extra":null} {"name":"NameService","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":32,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addRecord","offset":2681,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":609,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"decimals","offset":520,"parameters":[],"returntype":"Integer","safe":true},{"name":"deleteRecords","offset":2816,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Void","safe":false},{"name":"getAllRecords","offset":2972,"parameters":[{"name":"name","type":"String"}],"returntype":"InteropInterface","safe":false},{"name":"getPrice","offset":1013,"parameters":[],"returntype":"Integer","safe":true},{"name":"getRecords","offset":2773,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"isAvailable","offset":1047,"parameters":[{"name":"name","type":"String"}],"returntype":"Boolean","safe":true},{"name":"ownerOf","offset":542,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Hash160","safe":true},{"name":"properties","offset":564,"parameters":[{"name":"tokenID","type":"ByteArray"}],"returntype":"Map","safe":true},{"name":"register","offset":1386,"parameters":[{"name":"name","type":"String"},{"name":"owner","type":"Hash160"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Boolean","safe":false},{"name":"renew","offset":2142,"parameters":[{"name":"name","type":"String"}],"returntype":"Integer","safe":false},{"name":"resolve","offset":2950,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"}],"returntype":"Array","safe":true},{"name":"roots","offset":907,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"setAdmin","offset":2353,"parameters":[{"name":"name","type":"String"},{"name":"admin","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"setPrice","offset":935,"parameters":[{"name":"price","type":"Integer"}],"returntype":"Void","safe":false},{"name":"setRecord","offset":2487,"parameters":[{"name":"name","type":"String"},{"name":"typ","type":"Integer"},{"name":"id","type":"Integer"},{"name":"data","type":"String"}],"returntype":"Void","safe":false},{"name":"symbol","offset":514,"parameters":[],"returntype":"String","safe":true},{"name":"tokens","offset":685,"parameters":[],"returntype":"InteropInterface","safe":true},{"name":"tokensOf","offset":714,"parameters":[{"name":"owner","type":"Hash160"}],"returntype":"InteropInterface","safe":true},{"name":"totalSupply","offset":526,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":776,"parameters":[{"name":"to","type":"Hash160"},{"name":"tokenID","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"update","offset":455,"parameters":[{"name":"nef","type":"ByteArray"},{"name":"manifest","type":"String"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"updateSOA","offset":2263,"parameters":[{"name":"name","type":"String"},{"name":"email","type":"String"},{"name":"refresh","type":"Integer"},{"name":"retry","type":"Integer"},{"name":"expire","type":"Integer"},{"name":"ttl","type":"Integer"}],"returntype":"Void","safe":false},{"name":"version","offset":522,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"tokenId","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"0xfffdc93764dbaddd97c48f252a53ea4643faa3fd","methods":["update"]},{"contract":"*","methods":["onNEP11Payment"]}],"supportedstandards":["NEP-11"],"trusts":[],"extra":null}

Binary file not shown.

1
vendor/contracts/policy/config.json vendored Executable file
View file

@ -0,0 +1 @@
{"name":"APE","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addChain","offset":968,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"},{"name":"chain","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"getAdmin","offset":731,"parameters":[],"returntype":"Hash160","safe":true},{"name":"getChain","offset":1020,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"iteratorChainsByPrefix","offset":1548,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"prefix","type":"ByteArray"}],"returntype":"InteropInterface","safe":true},{"name":"listChains","offset":1401,"parameters":[{"name":"namespace","type":"String"},{"name":"container","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listChainsByPrefix","offset":1457,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"prefix","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listTargets","offset":1595,"parameters":[{"name":"entity","type":"Integer"}],"returntype":"InteropInterface","safe":true},{"name":"removeChain","offset":1107,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"removeChainsByPrefix","offset":1236,"parameters":[{"name":"entity","type":"Integer"},{"name":"entityName","type":"String"},{"name":"name","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"setAdmin","offset":698,"parameters":[{"name":"addr","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"update","offset":605,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":601,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}

BIN
vendor/contracts/policy/policy_contract.nef vendored Executable file

Binary file not shown.

View file

@ -1 +1 @@
{"name":"Multi Signature Processing","abi":{"methods":[{"name":"_deploy","offset":0,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"onNEP17Payment","offset":417,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":509,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"verify","offset":680,"parameters":[],"returntype":"Boolean","safe":true},{"name":"version","offset":767,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null} {"name":"Multi Signature Processing","abi":{"methods":[{"name":"_deploy","offset":0,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"onNEP17Payment","offset":327,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":419,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"verify","offset":551,"parameters":[],"returntype":"Boolean","safe":true},{"name":"version","offset":567,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}

View file

@ -1 +1 @@
{"name":"Notary Proxy","abi":{"methods":[{"name":"_deploy","offset":0,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"onNEP17Payment","offset":337,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":424,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"verify","offset":553,"parameters":[],"returntype":"Boolean","safe":true},{"name":"version","offset":602,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null} {"name":"Notary Proxy","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":26,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addAccount","offset":827,"parameters":[{"name":"addr","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"onNEP11Payment","offset":485,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"token","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"onNEP17Payment","offset":398,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"removeAccount","offset":883,"parameters":[{"name":"addr","type":"Hash160"}],"returntype":"Void","safe":false},{"name":"update","offset":565,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"verify","offset":657,"parameters":[],"returntype":"Boolean","safe":true},{"name":"version","offset":823,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}

Binary file not shown.

View file

@ -1 +0,0 @@
{"name":"Reputation","abi":{"methods":[{"name":"_deploy","offset":0,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"get","offset":706,"parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getByID","offset":722,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listByEpoch","offset":812,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"put","offset":563,"parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"},{"name":"value","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":432,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":890,"parameters":[],"returntype":"Integer","safe":false}],"events":[{"name":"reputationPut","parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"},{"name":"value","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}

View file

@ -1 +0,0 @@
{"name":"Subnet","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":64,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"addClientAdmin","offset":2071,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"groupID","type":"ByteArray"},{"name":"adminPublicKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"addNode","offset":1467,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"node","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"addNodeAdmin","offset":1102,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"adminKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"addUser","offset":2522,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"groupID","type":"ByteArray"},{"name":"userID","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"delete","offset":913,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"get","offset":803,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"ByteArray","safe":false},{"name":"nodeAllowed","offset":1911,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"node","type":"PublicKey"}],"returntype":"Boolean","safe":false},{"name":"put","offset":637,"parameters":[{"name":"id","type":"ByteArray"},{"name":"ownerKey","type":"PublicKey"},{"name":"info","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"removeClientAdmin","offset":2296,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"groupID","type":"ByteArray"},{"name":"adminPublicKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"removeNode","offset":1672,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"node","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"removeNodeAdmin","offset":1284,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"adminKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"removeUser","offset":2766,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"groupID","type":"ByteArray"},{"name":"userID","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":507,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"userAllowed","offset":3011,"parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"user","type":"ByteArray"}],"returntype":"Boolean","safe":false},{"name":"version","offset":3187,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Put","parameters":[{"name":"id","type":"ByteArray"},{"name":"ownerKey","type":"PublicKey"},{"name":"info","type":"ByteArray"}]},{"name":"Delete","parameters":[{"name":"id","type":"ByteArray"}]},{"name":"RemoveNode","parameters":[{"name":"subnetID","type":"ByteArray"},{"name":"node","type":"PublicKey"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}

Binary file not shown.

1
wallets/wallet1.json Normal file
View file

@ -0,0 +1 @@
{"version":"1.0","accounts":[{"address":"NhCHDEtGgSph1v6PmjFC1gtzJWNKtNSadk","key":"6PYQVTyo4PHBvegpRzSCNijGw6Zj2qN4wLVxTj5CM8nvsoYxkzBHqPzjzq","label":"wallet1","contract":{"script":"DCEDsJuqv/P2EHx+msuHIab8VhjUW1AkejFNguVIcCzOjNVBVuezJw==","parameters":[{"name":"parameter0","type":"Signature"}],"deployed":false},"lock":false,"isDefault":false}],"scrypt":{"n":16384,"r":8,"p":8},"extra":{"Tokens":null}}

1
wallets/wallet2.json Normal file
View file

@ -0,0 +1 @@
{"version":"1.0","accounts":[{"address":"NivQRezLwGP8xFPr87DD5XaYGUKK3BMsTa","key":"6PYWJrGbrRmY9eTagWhNaucN2PfuPmi1G3QStUwNX8uAtCjTs6UYj1V1J9","label":"wallet2","contract":{"script":"DCED44dZlzprtyK6q8LdhANqOfCy9T0y/sRaTazeilD+S3BBVuezJw==","parameters":[{"name":"parameter0","type":"Signature"}],"deployed":false},"lock":false,"isDefault":false}],"scrypt":{"n":16384,"r":8,"p":8},"extra":{"Tokens":null}}

1
wallets/wallet3.json Normal file
View file

@ -0,0 +1 @@
{"version":"1.0","accounts":[{"address":"NR8qvrREk1eCeQJce9zBaDyPE3PHGZfT6t","key":"6PYWLJ3VAUcE8xLPnCbMp561b411u6qWoErdkx3hJugFZXrSckH9wTKRhe","label":"wallet3","contract":{"script":"DCECPwTRyxo1hHzMtjFAr5qmm8+WMm6X1qnlLX2lRkoSY+1BVuezJw==","parameters":[{"name":"parameter0","type":"Signature"}],"deployed":false},"lock":false,"isDefault":false}],"scrypt":{"n":16384,"r":8,"p":8},"extra":{"Tokens":null}}