Initial commit
Signed-off-by: Artem Tataurov <a.tataurov@yadro.com>
This commit is contained in:
commit
b9b81e3e7e
46 changed files with 912 additions and 0 deletions
15
.gitignore
vendored
Normal file
15
.gitignore
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
# IDE
|
||||
.idea
|
||||
.vscode
|
||||
|
||||
# tempfiles
|
||||
.DS_Store
|
||||
*~
|
||||
.cache
|
||||
|
||||
temp
|
||||
tmp
|
||||
|
||||
# binary
|
||||
bin/
|
||||
release/
|
64
Dockerfile
Normal file
64
Dockerfile
Normal file
|
@ -0,0 +1,64 @@
|
|||
ARG FROSTFS_HUB_IMAGE=truecloudlab/frostfs
|
||||
ARG NEOGO_HUB_IMAGE=nspccdev/neo-go
|
||||
|
||||
ARG FROSTFS_CORE_TAG=0beb7ccf
|
||||
ARG FROSTFS_GATES_TAG=0.27.0-rc.2
|
||||
ARG NEOGO_TAG=0.101.1
|
||||
|
||||
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}-adm:${FROSTFS_CORE_TAG} as frostfs-adm
|
||||
FROM ${FROSTFS_HUB_IMAGE}-s3-gw:${FROSTFS_GATES_TAG} as frostfs-s3-gw
|
||||
FROM ${FROSTFS_HUB_IMAGE}-http-gw:${FROSTFS_GATES_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/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=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-adm /bin/frostfs-adm /usr/bin/frostfs-adm
|
||||
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/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/s3-gw-config.yaml /config/s3-gw-config.yaml
|
||||
COPY ./s3-gw/s3-gw-wallet.json /config/s3-gw-wallet.json
|
||||
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/ /config/bin
|
||||
|
||||
ENV AUTHMATE_WALLET_PASSPHRASE=""
|
||||
|
||||
ENTRYPOINT ["/config/bin/init-aio.sh"]
|
64
Makefile
Normal file
64
Makefile
Normal file
|
@ -0,0 +1,64 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
include .env
|
||||
include help.mk
|
||||
|
||||
# Common variables
|
||||
REPO=$(notdir $(shell pwd))
|
||||
VERSION ?= "$(shell git describe --tags --match "v*" 2>/dev/null || git rev-parse --short HEAD | sed 's/^v//')"
|
||||
|
||||
# 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"
|
||||
|
||||
# Variables for S3
|
||||
S3_BEARER_RULES ?= "/config/bearer-rules.json"
|
||||
S3_GATE_PUBLIC_KEY ?= "0312fe65b101565de74eedf477afb43417ff5f795732506cfddc8e044c5a030d76"
|
||||
|
||||
# Build aio Docker image
|
||||
image-aio:
|
||||
@echo "⇒ Build aio docker image "
|
||||
@docker build \
|
||||
--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 \
|
||||
-t $(AIO_IMAGE):$(AIO_VERSION) .
|
||||
|
||||
# Start AIO
|
||||
up:
|
||||
@docker-compose up --wait -d
|
||||
|
||||
# Stop AIO
|
||||
down:
|
||||
@docker-compose down
|
||||
|
||||
# Clean up
|
||||
clean:
|
||||
@docker volume rm frostfs-aio_data
|
||||
|
||||
# Generate S3 credentials
|
||||
s3cred:
|
||||
@docker exec aio /usr/bin/frostfs-s3-authmate issue-secret \
|
||||
--wallet /config/user-wallet.json \
|
||||
--peer localhost:8080 \
|
||||
--gate-public-key $(S3_GATE_PUBLIC_KEY) \
|
||||
--container-placement-policy "REP 1" \
|
||||
--bearer-rules $(S3_BEARER_RULES)
|
||||
|
||||
# Tick new epoch in side chain
|
||||
tick.epoch:
|
||||
@docker exec aio /usr/bin/frostfs-adm --config /config/frostfs-adm.yml morph force-new-epoch
|
||||
|
||||
# Show current version
|
||||
version:
|
||||
@echo $(VERSION)
|
||||
@echo "frostfs-node: $(AIO_VERSION)"
|
||||
@echo "neo-go: $(NEOGO_VERSION)"
|
186
README.md
Normal file
186
README.md
Normal file
|
@ -0,0 +1,186 @@
|
|||
# FrostFS All-in-One
|
||||
|
||||
Single node deployment helper provides instructions on how to deploy FrostFS
|
||||
components in the on-premise setup on one physical or virtual server. There will
|
||||
be just one instance of a service of each type, hence it is suitable for
|
||||
development purposes only and not recommended for production use.
|
||||
|
||||
|
||||
# Server requirements
|
||||
|
||||
- Docker with docker-compose
|
||||
- `jq`
|
||||
- `curl`
|
||||
|
||||
|
||||
# Quick Start
|
||||
|
||||
Run container:
|
||||
|
||||
``` sh
|
||||
$ git clone ssh://git@b.yadro.com:7999/obj/frostfs-aio.git /opt/frostfs
|
||||
$ cd /opt/frostfs
|
||||
$ make up
|
||||
```
|
||||
|
||||
Initial start takes about 40 seconds. Its readiness is based on healthcheck done by `docker-compose`.
|
||||
|
||||
The container can be stopped when needed:
|
||||
|
||||
``` sh
|
||||
$ make down
|
||||
```
|
||||
|
||||
The stored data and the blockchain configuration remain until the container's volume is deleted.
|
||||
So the next time we start the container with `make up` it will take about 10 seconds to initialize.
|
||||
|
||||
A storage node container uses persistent storage, so, if you've updated `aio` version
|
||||
or just want to reset the `frostfs-aio`, it's recommended to clear its local volume
|
||||
before starting the container:
|
||||
|
||||
``` sh
|
||||
$ make clean
|
||||
```
|
||||
|
||||
Also, you may have to make sure the storage node is in the network map.
|
||||
|
||||
``` sh
|
||||
$ docker exec -ti aio frostfs-cli netmap snapshot -c /config/cli-cfg-sn.yaml --rpc-endpoint 127.0.0.1:8080
|
||||
Epoch: 45
|
||||
Node 1: 022bb4041c50d607ff871dec7e4cd7778388e0ea6849d84ccbd9aa8f32e16a8131 ONLINE /dns4/localhost/tcp/8080
|
||||
Continent: Europe
|
||||
Country: Germany
|
||||
CountryCode: DE
|
||||
Deployed: Private
|
||||
Location: Falkenstein
|
||||
Price: 10
|
||||
SubDiv: Sachsen
|
||||
SubDivCode: SN
|
||||
UN-LOCODE: DE FKS
|
||||
```
|
||||
|
||||
If you don't see the output like this, you can wait for the new Epoch to come
|
||||
(about 1 hour), or force the starting of new epoch.
|
||||
If the commands fails, make sure you have jq installed.
|
||||
|
||||
``` sh
|
||||
$ make tick.epoch
|
||||
Updating FrostFS epoch to 2
|
||||
752aa525dfb36b6447f45b41fd3906db9f6a9cdecd2cf36ce6816b1b6ef453192
|
||||
```
|
||||
|
||||
Now everything is ready to serve your requests.
|
||||
|
||||
|
||||
# Build images
|
||||
|
||||
Also, you can build the aio image itself:
|
||||
|
||||
``` sh
|
||||
$ make image-aio
|
||||
```
|
||||
|
||||
|
||||
# Simple storage
|
||||
|
||||
|
||||
## S3 interface
|
||||
|
||||
### Setup S3
|
||||
|
||||
As soon as the storage node is in the network map (see above) you can generate S3
|
||||
credentials:
|
||||
|
||||
``` sh
|
||||
$ make s3cred
|
||||
{
|
||||
"access_key_id": "EXArWh8x1zeHG3851s1RtoCo7dowxF6rhLGA15nbMffT0AKRSjJ5fmcqf3Ht2VCAkfmPQUVARghRB77xHCA1BoN2p",
|
||||
"secret_access_key": "d70c1dba83f0f90bb231f06f1ce0e0dfbcfb122f4b4345a3c18d3869c359b79f",
|
||||
"owner_private_key": "140947599afd9ca89af4b358c3176eb046e554d942a0dc99a8e06f3e43c8f4ad",
|
||||
"wallet_public_key": "0324e76288fcb900100d01802a14ef977cca45ad073561230446df14b344c858b6",
|
||||
"container_id": "EXArWh8x1zeHG3851s1RtoCo7dowxF6rhLGA15nbMffT"
|
||||
}
|
||||
```
|
||||
|
||||
Now let's configure an S3 client (AWS CLI will be used as example):
|
||||
|
||||
``` sh
|
||||
$ aws configure
|
||||
AWS Access Key ID []: EXArWh8x1zeHG3851s1RtoCo7dowxF6rhLGA15nbMffT0AKRSjJ5fmcqf3Ht2VCAkfmPQUVARghRB77xHCA1BoN2p
|
||||
AWS Secret Access Key []: d70c1dba83f0f90bb231f06f1ce0e0dfbcfb122f4b4345a3c18d3869c359b79f
|
||||
Default region name []: us-east-1
|
||||
Default output format []: json
|
||||
```
|
||||
|
||||
### Create a container
|
||||
|
||||
``` sh
|
||||
$ aws s3api --endpoint http://localhost:8084 create-bucket --bucket koty --acl public-read-write
|
||||
```
|
||||
|
||||
### Put an object
|
||||
|
||||
``` sh
|
||||
$ aws s3api --endpoint http://localhost:8084 put-object --bucket koty --key kot --body cat.jpg
|
||||
{
|
||||
"ETag": "8677919550a90ff7106584285f25a70ac9e7aa38bdb4ed17d34bbfb366fd71b7"
|
||||
}
|
||||
```
|
||||
|
||||
### List objects
|
||||
|
||||
``` sh
|
||||
$ aws s3api --endpoint http://localhost:8084 list-objects --bucket koty
|
||||
{
|
||||
"Contents": [
|
||||
{
|
||||
"Key": "kot",
|
||||
"LastModified": "2023-02-17T15:01:52+00:00",
|
||||
"ETag": "8677919550a90ff7106584285f25a70ac9e7aa38bdb4ed17d34bbfb366fd71b7",
|
||||
"Size": 174512,
|
||||
"Owner": {
|
||||
"DisplayName": "NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw",
|
||||
"ID": "NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## frostfs-cli interface
|
||||
|
||||
### Create container with frostfs-cli
|
||||
|
||||
``` sh
|
||||
$ frostfs-cli -r localhost:8080 -w /config/user-wallet.json \
|
||||
--address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \
|
||||
container create \
|
||||
--policy "REP 1" --basic-acl public-read-write --await
|
||||
container ID: GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46
|
||||
awaiting...
|
||||
container has been persisted on sidechain
|
||||
```
|
||||
|
||||
### Put an object with frostfs-cli
|
||||
|
||||
``` sh
|
||||
$ frostfs-cli -r localhost:8080 -w /config/user-wallet.json \
|
||||
--address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \
|
||||
object put \
|
||||
--cid GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46 \
|
||||
--file cat.jpg
|
||||
[cat.jpg] Object successfully stored
|
||||
OID: HByVC9A34i22BnzW3n83z9vEMxuYZoC7nNu11ZvGeCTe
|
||||
CID: GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46
|
||||
```
|
||||
|
||||
### Get and object with frostfs-cli
|
||||
|
||||
``` sh
|
||||
$ frostfs-cli -r localhost:8080 -w /config/user-wallet.json \
|
||||
--address NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw \
|
||||
object get \
|
||||
--cid GfWw35kHds7gKWmSvW7Zi4U39K7NMLK8EfXBQ5FPJA46 \
|
||||
--oid HByVC9A34i22BnzW3n83z9vEMxuYZoC7nNu11ZvGeCTe > new_cat.jpg
|
||||
```
|
16
adm/frostfs-adm.yml
Normal file
16
adm/frostfs-adm.yml
Normal file
|
@ -0,0 +1,16 @@
|
|||
rpc-endpoint: http://localhost:30333
|
||||
alphabet-wallets: /config/alphabet/
|
||||
network:
|
||||
max_object_size: 67108864
|
||||
epoch_duration: 240
|
||||
basic_income_rate: 0
|
||||
homomorphic_hash_disabled: true
|
||||
fee:
|
||||
audit: 10000
|
||||
candidate: 10000000000
|
||||
container: 0
|
||||
container_alias: 0
|
||||
withdraw: 100000000
|
||||
credentials:
|
||||
az: "one"
|
||||
contract: "one"
|
28
docker-compose.yml
Normal file
28
docker-compose.yml
Normal file
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
|
||||
version: "2.4"
|
||||
services:
|
||||
aio:
|
||||
image: ${AIO_IMAGE}:${AIO_VERSION}
|
||||
container_name: aio
|
||||
domainname: frostfs
|
||||
hostname: aio
|
||||
restart: always
|
||||
stop_signal: SIGKILL
|
||||
healthcheck:
|
||||
test: curl --fail http://localhost:8083
|
||||
interval: 2s
|
||||
retries: 100
|
||||
start_period: 2s
|
||||
timeout: 2s
|
||||
volumes:
|
||||
- data:/data
|
||||
ports:
|
||||
- "8081:8081" # HTTP Gateway
|
||||
- "30333:30333" # RPC
|
||||
- "8080:8080" # FrostFS API RPC
|
||||
- "8084:8084" # S3 Gateway
|
||||
- "16513:16513" # Control service
|
||||
|
||||
volumes:
|
||||
data:
|
11
help.mk
Normal file
11
help.mk
Normal file
|
@ -0,0 +1,11 @@
|
|||
.PHONY: help
|
||||
|
||||
# Show this help prompt
|
||||
help:
|
||||
@echo ' Usage:'
|
||||
@echo ''
|
||||
@echo ' make <target>'
|
||||
@echo ''
|
||||
@echo ' Targets:'
|
||||
@echo ''
|
||||
@awk '/^#/{ comment = substr($$0,3) } comment && /^[a-zA-Z][a-zA-Z0-9.%_/-]+ ?:/{ print " ", $$1, comment }' $(MAKEFILE_LIST) | column -t -s ':' | grep -v 'IGNORE' | sort -u
|
36
http-gw/http-gw-config.yaml
Normal file
36
http-gw/http-gw-config.yaml
Normal file
|
@ -0,0 +1,36 @@
|
|||
logger:
|
||||
level: debug
|
||||
|
||||
rebalance_timer: 5m # Interval to check nodes health
|
||||
|
||||
connect_timeout: 60s # Timeout to dial node
|
||||
|
||||
request_timeout: 300s # Timeout to check node health during rebalance
|
||||
|
||||
# The order in which resolvers are used to find an container id by name
|
||||
resolve_order:
|
||||
- nns
|
||||
|
||||
server:
|
||||
- address: 0.0.0.0:8081
|
||||
|
||||
pprof:
|
||||
enabled: false # Enable pprof.
|
||||
address: localhost:8082
|
||||
prometheus:
|
||||
enabled: true # Enable metrics.
|
||||
address: localhost:8083
|
||||
|
||||
# Wallet settings
|
||||
wallet:
|
||||
path: /config/http-gw-wallet.json # Path to wallet
|
||||
address: NMUTD9nsxSf3KM2pTHaqwjq67Lv7GdG3oG
|
||||
passphrase: one # Passphrase to decrypt wallet
|
||||
|
||||
peers:
|
||||
0:
|
||||
address: grpc://localhost:8080
|
||||
priority: 1
|
||||
weight: 1
|
||||
|
||||
rpc_endpoint: http://localhost:30333
|
35
http-gw/http-gw-wallet.json
Normal file
35
http-gw/http-gw-wallet.json
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"version": "1.0",
|
||||
"accounts":
|
||||
[
|
||||
{
|
||||
"address": "NMUTD9nsxSf3KM2pTHaqwjq67Lv7GdG3oG",
|
||||
"key": "6PYNwfes95HfJW1VAtiaR1MRi24UU8NTGbb6t2MSUeehQk8NvYY3oshDym",
|
||||
"label": "",
|
||||
"contract":
|
||||
{
|
||||
"script": "DCECXLyJu9NhUvi9GzPXiePKZw8jT1zGH5SWzE1TdYwIr79BVuezJw==",
|
||||
"parameters":
|
||||
[
|
||||
{
|
||||
"name": "parameter0",
|
||||
"type": "Signature"
|
||||
}
|
||||
],
|
||||
"deployed": false
|
||||
},
|
||||
"lock": false,
|
||||
"isDefault": false
|
||||
}
|
||||
],
|
||||
"scrypt":
|
||||
{
|
||||
"n": 16384,
|
||||
"r": 8,
|
||||
"p": 8
|
||||
},
|
||||
"extra":
|
||||
{
|
||||
"Tokens": null
|
||||
}
|
||||
}
|
2
ir/cli-cfg.yaml
Normal file
2
ir/cli-cfg.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
wallet: /config/node-wallet.json
|
||||
password: "one"
|
63
ir/config.yaml
Normal file
63
ir/config.yaml
Normal file
|
@ -0,0 +1,63 @@
|
|||
wallet:
|
||||
path: /config/node-wallet.json
|
||||
address: Nhfg3TbpwogLvDGVvAvqyThbsHgoSUKwtn
|
||||
password: 'one'
|
||||
|
||||
without_mainnet: true
|
||||
|
||||
morph:
|
||||
endpoint:
|
||||
client:
|
||||
- address: ws://localhost:30333/ws
|
||||
validators: 02b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc2
|
||||
|
||||
timers:
|
||||
emit: 50
|
||||
stop_estimation:
|
||||
mul: 1
|
||||
div: 4
|
||||
collect_basic_income:
|
||||
mul: 1
|
||||
div: 2
|
||||
distribute_basic_income:
|
||||
mul: 3
|
||||
div: 4
|
||||
|
||||
emit:
|
||||
storage:
|
||||
amount: 400000000
|
||||
|
||||
audit:
|
||||
pdp:
|
||||
max_sleep_interval: 100ms
|
||||
|
||||
netmap_cleaner:
|
||||
enabled: true
|
||||
threshold: 3
|
||||
|
||||
locode:
|
||||
db:
|
||||
path: /config/locode.db
|
||||
|
||||
workers:
|
||||
netmap: 100
|
||||
balance: 100
|
||||
frostfs: 100
|
||||
container: 100
|
||||
alphabet: 100
|
||||
reputation: 100
|
||||
|
||||
logger:
|
||||
level: info
|
||||
|
||||
pprof:
|
||||
enabled: false
|
||||
address: localhost:6661
|
||||
|
||||
prometheus:
|
||||
enabled: false
|
||||
address: localhost:6662
|
||||
|
||||
control:
|
||||
grpc:
|
||||
endpoint: localhost:16512
|
4
morph/node-config.yaml
Normal file
4
morph/node-config.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
|
||||
Path: "/config/node-wallet.json"
|
||||
Password: "one"
|
68
morph/node-wallet.json
Normal file
68
morph/node-wallet.json
Normal file
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"version": "3.0",
|
||||
"name":null,
|
||||
"accounts": [
|
||||
{
|
||||
"address": "Nhfg3TbpwogLvDGVvAvqyThbsHgoSUKwtn",
|
||||
"key": "6PYM8VdX2BSm7BSXKzV4Fz6S3R9cDLLWNrD9nMjxW352jEv3fsC8N3wNLY",
|
||||
"label": "single",
|
||||
"contract": {
|
||||
"script": "DCECs2Ir9AF73+MXxYrtX0x1PyBrfbiWBG+n13S7xL9/jcJBVuezJw==",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "parameter0",
|
||||
"type": "Signature"
|
||||
}
|
||||
],
|
||||
"deployed": false
|
||||
},
|
||||
"lock": false,
|
||||
"extra":null,
|
||||
"isDefault": false
|
||||
},
|
||||
{
|
||||
"address": "NfgHwwTi3wHAS8aFAN243C5vGbkYDpqLHP",
|
||||
"key": "6PYM8VdX2BSm7BSXKzV4Fz6S3R9cDLLWNrD9nMjxW352jEv3fsC8N3wNLY",
|
||||
"label": "consensus",
|
||||
"contract": {
|
||||
"script": "EQwhArNiK/QBe9/jF8WK7V9MdT8ga324lgRvp9d0u8S/f43CEUGe0Nw6",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "parameter0",
|
||||
"type": "Signature"
|
||||
}
|
||||
],
|
||||
"deployed": false
|
||||
},
|
||||
"lock": false,
|
||||
"extra":null,
|
||||
"isDefault": false
|
||||
},
|
||||
{
|
||||
"address": "NfgHwwTi3wHAS8aFAN243C5vGbkYDpqLHP",
|
||||
"key": "6PYM8VdX2BSm7BSXKzV4Fz6S3R9cDLLWNrD9nMjxW352jEv3fsC8N3wNLY",
|
||||
"label": "committee",
|
||||
"contract": {
|
||||
"script": "EQwhArNiK/QBe9/jF8WK7V9MdT8ga324lgRvp9d0u8S/f43CEUGe0Nw6",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "parameter0",
|
||||
"type": "Signature"
|
||||
}
|
||||
],
|
||||
"deployed": false
|
||||
},
|
||||
"lock": false,
|
||||
"extra":null,
|
||||
"isDefault": true
|
||||
}
|
||||
],
|
||||
"scrypt": {
|
||||
"n": 16384,
|
||||
"r": 8,
|
||||
"p": 8
|
||||
},
|
||||
"extra": {
|
||||
"Tokens": null
|
||||
}
|
||||
}
|
54
morph/protocol.privnet.yml
Normal file
54
morph/protocol.privnet.yml
Normal file
|
@ -0,0 +1,54 @@
|
|||
ProtocolConfiguration:
|
||||
Magic: 15405
|
||||
MaxTraceableBlocks: 200000
|
||||
TimePerBlock: 1s
|
||||
MemPoolSize: 50000
|
||||
StandbyCommittee:
|
||||
- 02b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc2
|
||||
ValidatorsCount: 1
|
||||
SeedList:
|
||||
- 127.0.0.1:20333
|
||||
VerifyTransactions: true
|
||||
StateRootInHeader: true
|
||||
P2PSigExtensions: true
|
||||
|
||||
ApplicationConfiguration:
|
||||
SkipBlockVerification: false
|
||||
DBConfiguration:
|
||||
Type: "boltdb"
|
||||
BoltDBOptions:
|
||||
FilePath: "/data/chain/morph.bolt"
|
||||
P2P:
|
||||
Addresses:
|
||||
- ":20333"
|
||||
DialTimeout: 3s
|
||||
ProtoTickInterval: 2s
|
||||
PingInterval: 30s
|
||||
PingTimeout: 90s
|
||||
MaxPeers: 10
|
||||
AttemptConnPeers: 5
|
||||
MinPeers: 0
|
||||
Relay: true
|
||||
RPC:
|
||||
Addresses:
|
||||
- ":30333"
|
||||
Enabled: true
|
||||
SessionEnabled: true
|
||||
EnableCORSWorkaround: false
|
||||
MaxGasInvoke: 100
|
||||
P2PNotary:
|
||||
Enabled: true
|
||||
UnlockWallet:
|
||||
Path: "/config/node-wallet.json"
|
||||
Password: "one"
|
||||
Prometheus:
|
||||
Addresses:
|
||||
- ":20001"
|
||||
Enabled: true
|
||||
Pprof:
|
||||
Addresses:
|
||||
- ":20011"
|
||||
Enabled: false
|
||||
UnlockWallet:
|
||||
Path: "/config/node-wallet.json"
|
||||
Password: "one"
|
81
s3-gw/rules.json
Normal file
81
s3-gw/rules.json
Normal file
|
@ -0,0 +1,81 @@
|
|||
{
|
||||
"records": [
|
||||
{
|
||||
"operation": "PUT",
|
||||
"action": "ALLOW",
|
||||
"filters": [],
|
||||
"targets": [
|
||||
{
|
||||
"role": "OTHERS",
|
||||
"keys": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "GET",
|
||||
"action": "ALLOW",
|
||||
"filters": [],
|
||||
"targets": [
|
||||
{
|
||||
"role": "OTHERS",
|
||||
"keys": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "DELETE",
|
||||
"action": "ALLOW",
|
||||
"filters": [],
|
||||
"targets": [
|
||||
{
|
||||
"role": "OTHERS",
|
||||
"keys": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "SEARCH",
|
||||
"action": "ALLOW",
|
||||
"filters": [],
|
||||
"targets": [
|
||||
{
|
||||
"role": "OTHERS",
|
||||
"keys": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "GETRANGE",
|
||||
"action": "ALLOW",
|
||||
"filters": [],
|
||||
"targets": [
|
||||
{
|
||||
"role": "OTHERS",
|
||||
"keys": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "GETRANGEHASH",
|
||||
"action": "ALLOW",
|
||||
"filters": [],
|
||||
"targets": [
|
||||
{
|
||||
"role": "OTHERS",
|
||||
"keys": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "HEAD",
|
||||
"action": "ALLOW",
|
||||
"filters": [],
|
||||
"targets": [
|
||||
{
|
||||
"role": "OTHERS",
|
||||
"keys": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
67
s3-gw/s3-gw-config.yaml
Normal file
67
s3-gw/s3-gw-config.yaml
Normal file
|
@ -0,0 +1,67 @@
|
|||
wallet:
|
||||
path: /config/s3-gw-wallet.json
|
||||
passphrase: ""
|
||||
address: NN1RQ3qwnvDMVNsQw4WPkKi7BrjxdVTDZp
|
||||
|
||||
peers:
|
||||
0:
|
||||
address: localhost:8080
|
||||
priority: 1
|
||||
weight: 1
|
||||
|
||||
server:
|
||||
- address: 0.0.0.0:8084
|
||||
|
||||
logger:
|
||||
level: debug
|
||||
|
||||
tree:
|
||||
service: localhost:8080
|
||||
|
||||
rpc_endpoint: http://localhost:30333
|
||||
resolve_order:
|
||||
- nns
|
||||
|
||||
pprof:
|
||||
enabled: false
|
||||
address: localhost:8085
|
||||
|
||||
prometheus:
|
||||
enabled: false
|
||||
address: localhost:8086
|
||||
|
||||
connect_timeout: 10s
|
||||
stream_timeout: 10s
|
||||
healthcheck_timeout: 15s
|
||||
rebalance_interval: 60s
|
||||
pool_error_threshold: 100
|
||||
max_clients_count: 100
|
||||
max_clients_deadline: 30s
|
||||
|
||||
cache:
|
||||
objects:
|
||||
lifetime: 300s
|
||||
size: 150
|
||||
list:
|
||||
lifetime: 1m
|
||||
size: 100
|
||||
names:
|
||||
lifetime: 1m
|
||||
size: 1000
|
||||
buckets:
|
||||
lifetime: 1m
|
||||
size: 500
|
||||
system:
|
||||
lifetime: 2m
|
||||
size: 1000
|
||||
accessbox:
|
||||
lifetime: 5m
|
||||
size: 10
|
||||
accesscontrol:
|
||||
lifetime: 1m
|
||||
size: 100000
|
||||
|
||||
placement_policy:
|
||||
default: REP 1
|
||||
|
||||
|
1
s3-gw/s3-gw-wallet.json
Normal file
1
s3-gw/s3-gw-wallet.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":"1.0","accounts":[{"address":"NN1RQ3qwnvDMVNsQw4WPkKi7BrjxdVTDZp","key":"6PYPdaCberkBnPGL1vbt7rkekPKCFv3GvnPnCA67UMkKhTozamkhZj3j2X","label":"S3 Gateway","contract":{"script":"DCEDEv5lsQFWXedO7fR3r7Q0F/9feVcyUGz93I4ETFoDDXZBVuezJw==","parameters":[{"name":"parameter0","type":"Signature"}],"deployed":false},"lock":false,"isDefault":false}],"scrypt":{"n":16384,"r":8,"p":8},"extra":{"Tokens":null}}
|
1
s3-gw/user-wallet.json
Normal file
1
s3-gw/user-wallet.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":"1.0","accounts":[{"address":"NWeByJPgNC97F83hTUnSbnZSBKaFvk5HNw","key":"6PYVCcS2yp89JpcfR61FGhdhhzyYjSErNedmpZErnybNTxUZMRdhzJLrek","label":"","contract":{"script":"DCEDJOdiiPy5ABANAYAqFO+XfMpFrQc1YSMERt8Us0TIWLZBVuezJw==","parameters":[{"name":"parameter0","type":"Signature"}],"deployed":false},"lock":false,"isDefault":false}],"scrypt":{"n":16384,"r":8,"p":8},"extra":{"Tokens":null}}
|
2
sn/cli-cfg.yaml
Normal file
2
sn/cli-cfg.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
wallet: /config/wallet-sn.json
|
||||
password: ""
|
70
sn/config.yaml
Normal file
70
sn/config.yaml
Normal file
|
@ -0,0 +1,70 @@
|
|||
morph:
|
||||
rpc_endpoint:
|
||||
- address: ws://localhost:30333/ws
|
||||
dial_timeout: 20s
|
||||
|
||||
control:
|
||||
grpc:
|
||||
endpoint: localhost:16513
|
||||
|
||||
node:
|
||||
wallet:
|
||||
path: /config/wallet-sn.json
|
||||
password: ""
|
||||
addresses:
|
||||
- grpc://0.0.0.0:8080
|
||||
attribute_0: UN-LOCODE:DE FKS
|
||||
attribute_1: Price:10
|
||||
attribute_2: Deployed:Private
|
||||
|
||||
grpc:
|
||||
num: 1
|
||||
0:
|
||||
endpoint: 0.0.0.0:8080
|
||||
tls:
|
||||
enables: false
|
||||
|
||||
logger:
|
||||
level: debug
|
||||
|
||||
prometheus:
|
||||
enabled: false
|
||||
address: localhost:6664
|
||||
|
||||
pprof:
|
||||
enabled: false
|
||||
address: localhost:6663
|
||||
|
||||
storage:
|
||||
shard_num: 1
|
||||
shard:
|
||||
0:
|
||||
writecache:
|
||||
enabled: false
|
||||
metabase:
|
||||
path: /data/metabase.db
|
||||
perm: 0770
|
||||
blobstor:
|
||||
- type: blobovnicza
|
||||
path: /data/blob/blobovnicza
|
||||
perm: 0660
|
||||
opened_cache_capacity: 32
|
||||
depth: 1
|
||||
width: 1
|
||||
size: 4g
|
||||
- type: fstree
|
||||
path: /data/blob
|
||||
gc:
|
||||
remover_batch_size: 100
|
||||
remover_sleep_interval: 5m
|
||||
pilorama:
|
||||
path: /data/storage/pilorama
|
||||
|
||||
tree:
|
||||
enabled: true
|
||||
|
||||
object:
|
||||
put:
|
||||
pool_size_remote: 100
|
||||
pool_size_local: 100
|
||||
|
32
sn/wallet.json
Normal file
32
sn/wallet.json
Normal file
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"version":"3.0",
|
||||
"accounts":[
|
||||
{
|
||||
"address":"NejLbQpojKJWec4NQRMBhzsrmCyhXfGJJe",
|
||||
"key":"6PYSS8ccmBcttfcw2YJh8VcNSoeQbQLuJLQ7HoKeYF5roRmGs9LUvmKcWz",
|
||||
"label":"",
|
||||
"contract":{
|
||||
"script":"DCECK7QEHFDWB/+HHex+TNd3g4jg6mhJ2EzL2aqPMuFqgTFBVuezJw==",
|
||||
"parameters":[
|
||||
{
|
||||
"name":"parameter0",
|
||||
"type":"Signature"
|
||||
}
|
||||
],
|
||||
"deployed":false
|
||||
},
|
||||
"lock":false,
|
||||
"extra":null,
|
||||
"isDefault":true
|
||||
}
|
||||
],
|
||||
"name":null,
|
||||
"scrypt":{
|
||||
"n":16384,
|
||||
"r":8,
|
||||
"p":8
|
||||
},
|
||||
"extra":{
|
||||
"Tokens":null
|
||||
}
|
||||
}
|
BIN
vendor/contracts/alphabet/alphabet_contract.nef
vendored
Executable file
BIN
vendor/contracts/alphabet/alphabet_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/alphabet/config.json
vendored
Executable file
1
vendor/contracts/alphabet/config.json
vendored
Executable file
|
@ -0,0 +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}
|
BIN
vendor/contracts/audit/audit_contract.nef
vendored
Executable file
BIN
vendor/contracts/audit/audit_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/audit/config.json
vendored
Executable file
1
vendor/contracts/audit/config.json
vendored
Executable file
|
@ -0,0 +1 @@
|
|||
{"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}
|
BIN
vendor/contracts/balance/balance_contract.nef
vendored
Executable file
BIN
vendor/contracts/balance/balance_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/balance/config.json
vendored
Executable file
1
vendor/contracts/balance/config.json
vendored
Executable file
|
@ -0,0 +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}
|
1
vendor/contracts/container/config.json
vendored
Executable file
1
vendor/contracts/container/config.json
vendored
Executable file
|
@ -0,0 +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}
|
BIN
vendor/contracts/container/container_contract.nef
vendored
Executable file
BIN
vendor/contracts/container/container_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/frostfs/config.json
vendored
Executable file
1
vendor/contracts/frostfs/config.json
vendored
Executable file
|
@ -0,0 +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}
|
BIN
vendor/contracts/frostfs/frostfs_contract.nef
vendored
Executable file
BIN
vendor/contracts/frostfs/frostfs_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/frostfsid/config.json
vendored
Executable file
1
vendor/contracts/frostfsid/config.json
vendored
Executable file
|
@ -0,0 +1 @@
|
|||
{"name":"Identity","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":"addKey","offset":776,"parameters":[{"name":"owner","type":"ByteArray"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"key","offset":1181,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"removeKey","offset":974,"parameters":[{"name":"owner","type":"ByteArray"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"update","offset":643,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1252,"parameters":[],"returntype":"Integer","safe":true}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null}
|
BIN
vendor/contracts/frostfsid/frostfsid_contract.nef
vendored
Executable file
BIN
vendor/contracts/frostfsid/frostfsid_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/netmap/config.json
vendored
Executable file
1
vendor/contracts/netmap/config.json
vendored
Executable file
|
@ -0,0 +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}
|
BIN
vendor/contracts/netmap/netmap_contract.nef
vendored
Executable file
BIN
vendor/contracts/netmap/netmap_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/nns/config.json
vendored
Executable file
1
vendor/contracts/nns/config.json
vendored
Executable file
|
@ -0,0 +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}
|
BIN
vendor/contracts/nns/nns_contract.nef
vendored
Executable file
BIN
vendor/contracts/nns/nns_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/processing/config.json
vendored
Executable file
1
vendor/contracts/processing/config.json
vendored
Executable file
|
@ -0,0 +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}
|
BIN
vendor/contracts/processing/processing_contract.nef
vendored
Executable file
BIN
vendor/contracts/processing/processing_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/proxy/config.json
vendored
Executable file
1
vendor/contracts/proxy/config.json
vendored
Executable file
|
@ -0,0 +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}
|
BIN
vendor/contracts/proxy/proxy_contract.nef
vendored
Executable file
BIN
vendor/contracts/proxy/proxy_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/reputation/config.json
vendored
Executable file
1
vendor/contracts/reputation/config.json
vendored
Executable file
|
@ -0,0 +1 @@
|
|||
{"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}
|
BIN
vendor/contracts/reputation/reputation_contract.nef
vendored
Executable file
BIN
vendor/contracts/reputation/reputation_contract.nef
vendored
Executable file
Binary file not shown.
1
vendor/contracts/subnet/config.json
vendored
Executable file
1
vendor/contracts/subnet/config.json
vendored
Executable file
|
@ -0,0 +1 @@
|
|||
{"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}
|
BIN
vendor/contracts/subnet/subnet_contract.nef
vendored
Executable file
BIN
vendor/contracts/subnet/subnet_contract.nef
vendored
Executable file
Binary file not shown.
BIN
vendor/locode_db
vendored
Normal file
BIN
vendor/locode_db
vendored
Normal file
Binary file not shown.
Loading…
Reference in a new issue