* Update tooling around docker
* Run commands
* Remove swagger gen for now
* Update proto-gen-any
* Fix indentn
* Use CURDIR
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
* bump to tendermint v0.34-rc6
* update go.mod
* tendermint version is now accessible as tmversion.TMCoreSemVer
* add changelog entry
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* tests: add command to compile all test files
test-build-check will compile and use go cache mechanism to
check if ALL files compiles without running any test.
ref: 7362
* update comment
* makefile: remove update-swagger-docs
* Makefile: redoing the test check command
* Update Makefile
* Update Makefile
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
The simd target is removed in favor of build/install targets:
- build runs go build ./... with all appropriate flags and args.
- install runs go install ./... with all approriate flags and args.
localnet-start now depends on build-linux [1].
[1] This should hopefully put a smile on @alexanderbez's face!
Remove unused install scripts and snapcraft build files.
* setup: update linter make jobs
* go lint: remove wsl from golangci-lint config
* rollback to use disable-all
* bring back vendor rules
* lint fails on golangci-lint error
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Introduce 'norace' build tag that is used to
filter out test files containing test cases
or test suites that, if run with the -race
flag on would cause race conditions.
Supersede #7300.
Provide a simple Docker-based mechanism for application
developers to provide reproducible builds. Unlike gaia's
current reproducible buildsystem, this does not depend on
external tools, e.g. `gitian-builder`.
`build-simd-linux` now builds `simd` in a deterministic
Linux container.
{,cosmosvisor/}Makefile: Add Makefile to cosmovisor/
subdirectory and integrate build target into the
top-directory Makefile.
cosmovisor/:
Create Golang-idiomatic cmd/ subdirectory to make
`cosmosvisor` binary (instead of a binary named `cmd`)
automatically installable with `go get`.
Minor changes to error handling:
- Plain error strings bring more value than the whole
stacktrace in case of dumb configuration errors.
- Output errors to /dev/stderr instead of /dev/stdout.
Remove dependency on github.com/pkg/errors.
* Add proto format option
* Add clang format options
* Fix proto format
* Fix fmt
* Fix SpacesInSquareBrackets to match with SpacesInSquareBrackets setting
Move images into contrib/images/.
Replace "bad tag" cosmos-sdk/simapp with cosmos-sdk/simd-env.
'simapp' is a misnomer as the images serves only as host
environment for the binaries that are in fact built by the
developer on their machine.
Remove the build-docker-local-simapp target altogether
from the Makefile in favor of an inline conditional statement
that causes the image to be rebuilt if and only if it had not
been built before.
simd binary won't run as root anymore as root privileges
are dropped upon simd binary installation.
Co-authored-by: Marko Baricevic <marbar3778@yahoo.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
* fix proto tools
* go get
* fix proto-tools
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
* Enable proto tx by default and add test_amino build flag.
* Enable proto TxDecoder
* update makefile
* fix conflicts
* Revert AminoCodec change
* Make test-unit-amino default for now
* Make test-unit-amino default for now
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: sahith-narahari <sahithnarahari@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Follow-up of #6101.
- Makefile:
Set all as actual default target.
- contrib/devtools/Makefile:
The buf target was running unconditionally.
Install protoc-gen-gocosmos along with protoc.
* consolidate proto files into single directory, turn on PACKAGE_DIRECTORY_MATCH linting
* add third_party root for third party proto files
* move ibc proto files to top level folder, rename .proto files to types.proto as before
* update protocgen script, and run code generation
* move vesting proto definition to cosmos namespace, rename from types.proto in alignment with buf.build naming conventions
* update Makefile so proto dependencies are set with new structure when updated
* add comment for sed usage in makefile
* remove unused aliases of proto generated types
* add settings.json instructions to contributing.md for including protobuf paths
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Aaron Craelius <aaron@regen.network>
The command processes list of transactions from file
(one StdTx each line), generate signed transactions
or signatures and print their JSON encoding, delimited
by '\n'. As the signatures are generated, the command
increments the sequence number automatically.
Author: @jgimeno
Reviewed-by: @alessio
--validate-signatures should not be a flag of the sign command
as the operation performed (transaction signatures verification)
is logically distinct.
cli_test is and has always been an horrible name for package
directory as it's very much Go anti-idiomatic - _test is the
suffix used by test packages, not directories. Plus, CLI test
cases can and should live alongside other testcases that don't
require binaries to be built beforehand. Thus:
x/module/client/cli_test/*.go -> x/module/client/cli/
Test files that require sim{cli,d} shall be tagged with // +build cli_test
With regard to cli test auxiliary functions, they should live in:
x/module/client/testutil/
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* Added cli integration base setup
* Added cmd to simapp
* Fixed ci-lint issues
* Fixed ci-lint issues
* Addressed changes in Makefile
* Updated simd to latest
* Removed testnet and replay commands
* Modified tx command for simcli
* Did code cleanup
* Removed duplication in Makefile
* Refactored cli_test
* Added build-sim to Makefile
* Added test-cli to circleci
* Added tests for staking txns
* Addressed format issues
* refctored tests code
* Added tests for send, staking
* Removed test_hepers file
* Moved test_cover to contrib
* Added codec in fixtures
* Migrated tests to respective modules
* Exported helper methods
* Moved helpers to bank
* Added codec to fixtures
* Migrated tests to modules
* Removed auth helpers from staking
* Did minor code cleanup
* Added test-cli to Makefile
* Updated github actions
* Did code refactor
* Fixed github actions for cli-test
* Added tests for recover keys and fee deduction
* Did minor code cleanup
* Added build flag to cli_tests
* Moved cli_test to tests
* Modified path in Makefile
* Updated codec std in fixtures
* Added doc for cli tests
* Remove ibc genesis validation
* Fix issue number
* Added missing imports
* Add tests for distribution and simd
* Modified naming for test functions
* Added test for withdraw rewards
* Modified test function names
* Fixed import format
* Migrated helpers to package cli
* Fixed github test actions
* Fixed test coverage in actions
* Added build sim to actions
* Apply Alessio patch for tests
* Removed unused imports
* Added init for go tests
* try fix tests
* goimports what wasn't goimports'd
* try fix ci
* add relevant tags to integration tests
* run integration tests separately
* use go build -o flag and let compiler gemerate the binary with the
right extension for the HOST platform
rename cli-test to test-integration
* update ci
* rename
Co-authored-by: atheesh <atheesh1>
Co-authored-by: kaustubhkapatral <54210167+kaustubhkapatral@users.noreply.github.com>
Co-authored-by: Aaron Craelius <aaron@regen.network>
Co-authored-by: anilCSE <anil@vitwit.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Don't reinstall proto tools unconditionally every time
one runs make.
On most Linux systems, /usr/local is writable by root only.
Allow users to customise installation directory by passing
PREFIX to make command line, e.g.:
$ make PREFIX=~/.local
Cancel ci if no .go files have been touched. There is no clean way of
doing this so i opted to `exit 1` on the diff job if no go files were
changed and have builds depend on diff passing
- migrate proto checks to github actions.
- providing make commands to use buf within docker.
- test-sim-multi-seed-long migration to github actions. Follows same
logic and only runs on release branches.
- add protobuf section to CONTRIBUTING.md.
* Don't change proto files on make format
The format target does not need to depend on tools.
Thus remove dependency.
* Run make format
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Client commands accept a new `--keyring-backend` option through which users can specify which backend should be used by the new key store:
- os: use OS default credentials storage (default).
- file: use encrypted file-based store.
- test: use password-less key store (highly insecure).
* Attempt to standardise Makefile's conventions
Use check- prefix for test- targets to adhere to
Make's standard naming convention [1].
Snake-case names are abandoned in favor of
kebab-case naming convention.
[1] https://www.gnu.org/prep/standards/html_node/Standard-Targets.html
* Replace check- with test-
* Remove goimports from tools
* Update circleci config
* Update workflow steps names to match Makefile
* Fix circleci config
* s/check_statik/update-swagger-docs/
Update golangci-lint to latest version.
Remove ci-lint, no longer used.
Remove golangci-lint from tools target to prevent CI builds
from downloading automatically (and unnecessarily).
Developers can still run make golangci-lint to download
it locally for development and testing purposes.
Account getters are removed from client context. x/auth has the
queriers necessary for retrieving account information.
These functions should be removed since they are currently
redundant and don't provide any extra value.
Closes: #4543
Gaia is removed from cosmos-sdk repository.
Few changes were required to make sure no packages depend on gaia subpackages.
CI config is amended accordingly.
Unnecessary targets are removed from Makefile.
Simulations run through a lightweight version of gaia renamed to simapp.
Closes: #4104
* first commit
* gaia cleanup
* ...
* staking multihooks
* missing module function return args
* bank module name constant
* working, module interface for x/
* got this thing compiling
* make test compiles and passes
* remove expanded simulation invariants
* genesis issue
* continued
* continued
* register crisis routes thought mm
* begin blocker to mm
* end blocker to mm
* empty routes not initialized
* move gaia initChainer sanity check to baseapp
* remove codecs from module manager
* reorging genesis stuff
* module manager passed by reference/bugfixes from working last commit
int
int
* move invariant checks from gaia to crisis
* typo
* basic refactors cmd/gaia/init
* working
* MultiStakingHooks from types to x/staking/types
int
* default module manager order of operations from input modules
* working
* typo
* add AppModuleBasic
* moduleBasicManager / non-test code compiles
* working attempting to get tests passing
* make test passes
* sim random genesis fix
* export bug
* ...
* genutil module
* genutil working
* refactored - happy with non-testing code in cmd/
* ...
* lint fixes
* comment improvement
* cli test fix
* compile housing
* working through compile errors
* working gettin' compilin'
* non-test code compiles
* move testnet to its own module
* reworking tests
int
* bez staging PR 1 comments
* concise module function-of names
* moved all tests from genesis_test.go to other genutil tests
* genaccounts package, add genutil and genaccounts to app.go
* docs for genutil genaccounts
* genaccounts iterate fn
* non-test code with genaccounts/ now compiles
* working test compiling
* debugging tests
* resolved all make test compile errors
* test debuggin
* resolved all unit tests, introduced param module
* cli-test compile fixes
* staking initialization bug
* code comment improvements, changelog entries
* BasicGaiaApp -> ModuleBasics
* highlevel explanation in types/module.go
* @alexanderbez comment revisions
* @fedekunze PR comments
* @alexanderbez PR comments (x2)
* @cwgoes comments (minor updates)
* @fedekunze suggestions
* panic on init with multiple validator updates from different modules
* initchain panic makes validate genesis fail
int
* AppModuleGenesis seperation
int
* test
* remove init panic logic in validate genesis replaced with TODO
* set maxprocs to match system's GOMAXPROCS
* Update circleci
* Cap maxprocs in CI to 4
* @alexanderbez recent comments addressed
* less blocks in twouble sims
int
* runsim error output flag
* -e on import_export as well
* error out
int
* Try to fix failures
* runsim
This change set introduces support for building gaia with gitian
on the following GOOS/GOARCH pairs:
- darwin/386
- darwin/amd64
- linux/386
- linux/amd64
- linux/arm
- linux/arm64
- windows/386
- windows/amd64
cmd/gaia/contrib/gitian-descriptors/ contains gitian descriptor files.
cmd/gaia/contrib/gitian-keys/ contains:
- a keys.txt file that is meant to list core developers and gitian
builders PGP keys.
- README.me to provide instructions on how to import the keys
into one's personal GPG keyring.
The gosum utility is removed, so is the go.sum hashsum bit from
gaiacli/gaiad version string. It was meant to be a provisional
mitigation to the lack of a reproducible build process.
GOBIN is removed from all Makefiles. When GOBIN is set, go
refuses to cross-compiles binaries for foreign architectures.
export GOBIN=$GOPATH/bin is unnecessary anyway as by
default go install places built binaries in $GOPATH/bin.
Developers are required to update their enviornment files and
replace $GOBIN with $GOPATH/bin in PATH.
circleci configuration file is amended accordingly.
Closes: #4027Closes: #4280
The version package is meant to be a convenience utility
that provides SDK consumers with a ready-to-use version
command that produces app's versioning information from
flags passed at compile time.
It will not make sense anymore for the baseapp package
to depend on the version package once gaia will have been
migrated away from the SDK main repository as we neither
want to make assumptions nor set expectations on downstream
apps buildsystems. Thus BaseApp now provides SetAppVersion()
and AppVersion() to to allow SDK consumers to set BaseApp's
version information string once the struct is initialised.
Amend targets naming convention as per [1]:
- Switch from underscore '_' separated naming scheme to dash '-'
separated naming scheme.
- Replace test with check.
Simulations now live in their own Make module.
[1] https://www.gnu.org/prep/standards/html_node/Standard-Targets.html
{,scripts/}Makefile:
- Remove gometalinter, install golangci-lint.
- Remove distinction between tools and devtools.
Just tools is enough.
- test_lint -> lint
Migrating away from underscore separated names.
- Remove unnecessary targets.
- Drop tendermint/lint. Incompatbile with golangci-lint
and no longer necessary anyway.
- Fix misleading message in go-mod-cache.
- New ci-target to avoid download tools twice.
- Run tests with -mod=readonly.
Port tools/gometalinter.json to .golangci.yml
Update CircleCI config accordingly.
Closes: #3896
Replace sha1sum with jack's gosum and get rid of
vendor-deps.
Also don't compute hash on vendor/ contents.
Instead hash go.sum.
Disable unconvert lint check. It does not
work very well with go mod.
Remove update_vendor_deps once and for all.
Upgrade to go 1.12
Closes: #3919#3630
- Remove --long from git describe. Appending commit info on tagged
revisions is redundant.
- $(subst v,,$(shell git describe --tags --long)) was removing any
occurrence of 'v'. Rather we want to remove only the 'v' prefix
from tags.
* version prints out short info by default
Handle -o json, add --long flag to print full version info.
* Add distclean target to Makefile
* Update PENDING.md
* Add missing targets in .PHONY
- Rename get_dev_tools to devtools
- tools and devtools now create a stamp after execution so
that they are not executed twice on the same pipeline
- Add clean target to remove stamps
Fixes regression introduced by #2984.
Continuiation of #3033 , which didn't fix the simulation issues.
(candidate) Complete solution for #3019, 9002 halt bug.
From #2984, it isn't sufficient to take the fee pool rewards of a validator. Since we don't track delegator accums (as we do with validator accums), and because onValidatorModified >updateValidatorDistInfoFromPool is also being called upon delegation updates (or at least I believe this is the reason), it is necessary to also withdraw self delegation.
TODO: I don't think self-delegation should be required to be modified here... consider using a delegation hook to do the self-delegation withdraw part instead, e.g. splitting the updateValidatorDistInfoFromPool function into two. It might not result in cleaner code, however. Think hard.
* Add check that account is in genesis and contains enough funds to gentx command
* Fix CLI tests and make them parallel
* Update makefile to take advantage of parallel tests
* Add path seperator back in
* Don
't check error on key delete
* Add debuggin printout for debugging remote test failures
* Update cmd/gaia/init/gentx.go
Co-Authored-By: jackzampolin <jack.zampolin@gmail.com>
* Update cmd/gaia/init/gentx.go
Co-Authored-By: jackzampolin <jack.zampolin@gmail.com>
* Change to bondDenom from the stake section in genesis
* Add PENDING.md
* Push changes
* Fix CI failure
* Address PR comments
* Fix broken gov tests
* Address PR comments
* Address PR comments
* Update PENDING.md
* Add simple period for expensive invariants
* Remove individual module simulations
* Simulate a few more blocks
* Add README explaining reason for shell scripts
* Deduplicate scripts, log exact replication command on failure
* Refactor invariants to take sdk.Context instead of baseapp.BaseApp
* Reference all issues in PENDING.md entry
* Remove no longer used simulation.RandSetup
* Bug fixes
* Address @rigelrozanski comments
* Fix typo
* Make simulator operations predetermined
* Use new dbm.ReverseIterator API
* Simulation speed improvements
* Pin exact revisions, not branches
* Rename 'MountStoresIAVL' to 'MountStores'
* Zero Power Block fees to community pool
* Added goimports tool to get_tools. Get_tools now only builds new versions if binaries are missing.
* Added the goimports format command from yutianwu's PR
* goimports install typo fix
Closes#2812
This PR adds the flag --for-zero-height to gaiad export, which runs several alterations to the application state to prepare for restarting a new chain in a consistent fashion.
It also:
* Moves Gaia's export code to cmd/gaia/app/export.go for cleaner separation.
* Fixes an inconsistency where we treated the initChainer as happening at height -1 - it should now happen at height 0, since the first header sent by Tendermint has height 1.
* Runs the runtime invariant checks on start (in initChainer)
* Adds a few auxiliary functions to clear slashing periods
* Removes the Height field from Delegation objects in x/stake, which was not used anywhere
* Update docs/sdk/clients.md
* organize ADR directory like tendermint
* docs: move spec-proposals into spec/
* remove lotion, moved to website repo
* move getting-started to cosmos-hub, and voyager to website
* docs: move lite/ into clients/lite/
* move introduction/ content to website repo
* move resources/ content to website repo
* mv sdk/clients.md to clients/clients.md
* mv validators to cosmos-hub/validators
* move deprecated sdk/ content to _attic
* sdk/modules.md is duplicate with modules/README.md
* consolidate remianing sdk/ files into a single sdk.md
* move examples/ to docs/examples/
* mv docs/cosmos-hub to docs/gaia
* Add keys/accounts section to localnet docs
* Update slashing import/export
* More slashing.WriteGenesis
* Add test import/export to CI
* Store equality comparison.
* Fix validator bond intra-tx counter
* Set timeslices for unbonding validators
* WriteGenesis => ExportGenesis
* Delete validators from unbonding queue when re-bonded
* Hook for validator deletion, fix staking genesis tests
This also had to change the default seed, since with the previous one it
actually got into a state where there were no validators left bonded, lol.
This also changes Unbond msgs from failing with almost 100% probability to now
only failing with 33% probability.
Thus more of the state machine is getting tested!
This is basically copying over @anton's great script!
Also had to run `make format` to make this pass `test_lint`.
This PR also makes the make commands for tools further align
with the tendermint implementation.
* Cherry picked commits from prev branch
* Added new keepers for querier functionalities
* Renaming
* Fixed gov errors and messages
* Added Querier to stake and app
* Update delegation keepers
* REST Queriers not working
* Fix marshalling error
* Querier tests working
* Pool and params working
* sdk.NewCoin for test handler
* Refactor and renaming
* Update LCD queries and added more tests for queriers
* use sdk.NewCoin
* Delegator summary query and tests
* Added more tests for keeper
* Update PENDING.md
* Update stake rest query
* Format and replaced panics for sdk.Error
* Refactor and addressed comments from Sunny and Aleks
* Fixed some of the errors produced by addr type change
* Fixed remaining errors
* Updated and fixed lite tests
* JSON Header and consistency on errors
* Increased cov for genesis
* Added comment for maxRetrieve param in keepers
* Comment on DelegationWithoutDec
* Bech32Validator Keepers
* Changed Bech validator
* Updated remaining tests and bech32 validator
* Addressed most of Rigel's comments
* Updated tests and types
* Make codec to be unexported from keeper
* Moved logic to query_utils and updated tests
* Fix linter err and PENDING
* Fix err
* Fix err
* Fixed tests
* Update PENDING description
* Update UpdateBondedValidatorsFull
* Update iterator
* defer iterator.Close()
* delete comment
* Address some of Aleks comments, need to fix tests
* export querier
* Fixed tests
* Address Rigel's comments
* More tests
* return error for GetDelegatorValidator
* Fixed conflicts
* Fix linter warnings
* Address @rigelrozanski comments
* Delete comments
* wire ––> codec
Now that we properly initialize governance, a ton of governance slashing
doesn't happen in the first few blocks. Because of this, we can run through
blocks in the range (0,200) quite rapidly. This PR acknowledges that and
increases many of the default block heights.
* CI: Make CI not update the lock file
We want CI to be running the lock in the repo, not generating a new one.
Linting now ensures that the lock file is up to date.
* Switch to Chris' comment
* Update pending to indicate this new command
* Remotenet command for AWS and ansible fixes for all remotenet commands
* Ansible for AWS, terraform for AWS
* Moved remotenet commands to networks/ folder, created ansible playbooks and example scripts to set up remote testnets in the cloud
* Added application deployment infrastructure scripts
* Obsoleted DigitalOcean scripts, some cleanup in AWS scripts
* Changelog -> pending, disclaimer