FrostFS smart-contract
Find a file
Vladimir Domnich 03bff785d2 [#293] container: Add IterateContainerSizes method
Add method that allows to iterate over estimation records.

Update tests to assert that list of estimations built with existing methods
is identical to estimations from iterator.

Signed-off-by: Vladimir Domnich <v.domnich@yadro.com>
2023-01-16 14:40:21 +03:00
.github Change logo 2023-01-09 11:43:08 +03:00
alphabet [TrueCloudLab#3] *: Use frostfs in docs 2023-01-11 17:19:35 +03:00
audit [TrueCloudLab#3] *: Use frostfs in docs 2023-01-11 17:19:35 +03:00
balance [TrueCloudLab#3] balance: Rename neofs to frostfs 2023-01-11 17:19:35 +03:00
common [#284] *: Update version and remove the old migration code 2022-10-18 09:54:53 +03:00
container [#293] container: Add IterateContainerSizes method 2023-01-16 14:40:21 +03:00
debian [#291] Debian packaging 2023-01-16 14:40:21 +03:00
frostfs [TrueCloudLab#3] neofs: Rename contract to frostfs 2023-01-11 17:19:35 +03:00
frostfsid [TrueCloudLab#3] neofsid: Rename contract to frostfsid 2023-01-11 17:19:35 +03:00
netmap [TrueCloudLab#3] netmap: Rename neofs to frostfs 2023-01-11 17:19:35 +03:00
nns Move from nspcc-dev to TrueCloudLab 2022-12-13 11:12:48 +03:00
processing [TrueCloudLab#3] processing: Rename neofs to frostfs 2023-01-11 17:19:35 +03:00
proxy [TrueCloudLab#3] *: Use frostfs in docs 2023-01-11 17:19:35 +03:00
reputation [TrueCloudLab#3] *: Use frostfs in docs 2023-01-11 17:19:35 +03:00
subnet [TrueCloudLab#3] *: Use frostfs in docs 2023-01-11 17:19:35 +03:00
tests [#293] container: Add IterateContainerSizes method 2023-01-16 14:40:21 +03:00
.gitignore [#291] Debian packaging 2023-01-16 14:40:21 +03:00
CHANGELOG.md Change logo 2023-01-09 11:43:08 +03:00
go.mod Move from nspcc-dev to TrueCloudLab 2022-12-13 11:12:48 +03:00
go.sum [#284] go.mod: Update neo-go to v0.99.4 2022-10-18 09:54:53 +03:00
LICENSE.md init commit 2020-04-01 19:27:29 +03:00
Makefile [#291] Debian packaging 2023-01-16 14:40:21 +03:00
README.md [#291] Debian packaging 2023-01-16 14:40:21 +03:00
VERSION [#284] *: Update version and remove the old migration code 2022-10-18 09:54:53 +03:00

FrostFS

FrostFS related smart contracts.


Overview

FrostFS-Contract contains all FrostFS related contracts written for neo-go compiler. These contracts are deployed both in the mainchain and the sidechain.

Mainchain contracts:

  • frostfs
  • processing

Sidechain contracts:

  • alphabet
  • audit
  • balance
  • container
  • frostfsid
  • netmap
  • nns
  • proxy
  • reputation
  • subnet

Getting started

Prerequisites

To compile smart contracts you need:

Compilation

To build and compile smart contract, run make all command. Compiled contracts *_contract.nef and manifest config.json files are placed in the corresponding directories.

$ make all
/home/user/go/bin/cli contract compile -i alphabet -c alphabet/config.yml -m alphabet/config.json -o alphabet/alphabet_contract.nef
/home/user/go/bin/cli contract compile -i audit -c audit/config.yml -m audit/config.json -o audit/audit_contract.nef
/home/user/go/bin/cli contract compile -i balance -c balance/config.yml -m balance/config.json -o balance/balance_contract.nef
/home/user/go/bin/cli contract compile -i container -c container/config.yml -m container/config.json -o container/container_contract.nef
/home/user/go/bin/cli contract compile -i frostfsid -c frostfsid/config.yml -m frostfsid/config.json -o frostfsid/frostfsid_contract.nef
/home/user/go/bin/cli contract compile -i netmap -c netmap/config.yml -m netmap/config.json -o netmap/netmap_contract.nef
/home/user/go/bin/cli contract compile -i proxy -c proxy/config.yml -m proxy/config.json -o proxy/proxy_contract.nef
/home/user/go/bin/cli contract compile -i reputation -c reputation/config.yml -m reputation/config.json -o reputation/reputation_contract.nef
/home/user/go/bin/cli contract compile -i subnet -c subnet/config.yml -m subnet/config.json -o subnet/subnet_contract.nef
/home/user/go/bin/cli contract compile -i nns -c nns/config.yml -m nns/config.json -o nns/nns_contract.nef
/home/user/go/bin/cli contract compile -i frostfs -c frostfs/config.yml -m frostfs/config.json -o frostfs/frostfs_contract.nef
/home/user/go/bin/cli contract compile -i processing -c processing/config.yml -m processing/config.json -o processing/processing_contract.nef

You can specify path to the neo-go binary with NEOGO environment variable:

$ NEOGO=/home/user/neo-go/bin/neo-go make all

Remove compiled files with make clean or make mr_proper command.

Building Debian package

To build Debian package containing compiled contracts, run make debpackage command. Package will install compiled contracts *_contract.nef and manifest config.json with corresponding directories to /var/lib/neofs/contract for further usage. It will download and build neo-go, if needed.

To clean package-related files, use make debclean.

Testing

Smartcontract tests reside in tests/ directory. To execute test suite after applying changes, simply run make test.

$ make test
ok      github.com/TrueCloudLab/frostfs-contract/tests       0.462s

License

This project is licensed under the GPLv3 License - see the LICENSE.md file for details