Skip to content

Commit 4859595

Browse files
author
Nicolas Mahé
authored
Merge pull request #1866 from mesg-foundation/dev
Release v0.26.0
2 parents 73a6b0c + 496656c commit 4859595

File tree

101 files changed

+1995
-954
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+1995
-954
lines changed

.circleci/config.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ jobs:
9797
<<: *run_on_docker
9898
steps:
9999
- checkout
100-
- run: make publish version="`echo $CIRCLE_SHA1 | cut -c1-7`" release-type=unstable
100+
- run: make publish-unstable version="`echo $CIRCLE_SHA1 | cut -c1-7`"
101101

102102
"release_cli_prod":
103103
<<: *run_on_docker
104104
steps:
105105
- checkout
106-
- run: make publish version=$CIRCLE_TAG release-type=prod
106+
- run: make publish-prod version=$CIRCLE_TAG
107107

108108
workflows:
109109
version: 2

.dockerignore

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ schema1.svg
2222
coverage.txt
2323

2424
# configuration & repo files
25-
Makefile
2625
.circleci
2726
.codacy.yml
2827
.codeclimate.yml

CHANGELOG.md

+26
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
# Changelog
22

3+
## [v0.26.0](https://github.com/mesg-foundation/engine/releases/tag/v0.26.0)
4+
5+
#### Breaking Changes
6+
7+
- ([#1842](https://github.com/mesg-foundation/engine/pull/1842)) Execution price based on service task price and new credit module.
8+
- ([#1853](https://github.com/mesg-foundation/engine/pull/1853)) Fix 3 issues with instance.
9+
- ([#1855](https://github.com/mesg-foundation/engine/pull/1855)) Add modules gov, upgrade, evidence and crisis.
10+
11+
#### Added
12+
13+
- ([#1860](https://github.com/mesg-foundation/engine/pull/1860)) Add export and import genesis functions to module credit .
14+
- ([#1861](https://github.com/mesg-foundation/engine/pull/1861)) Add msg to mint credits module credit.
15+
16+
#### Changed
17+
18+
- ([#1849](https://github.com/mesg-foundation/engine/pull/1849)) Add a mechanism to reuse previous build image to speed up build time.
19+
- ([#1850](https://github.com/mesg-foundation/engine/pull/1850)) Move CLI build and publish script to makefile to avoid duplication of code.
20+
21+
#### Fixed
22+
23+
- ([#1862](https://github.com/mesg-foundation/engine/pull/1862)) Improve checks of commands' parameters.
24+
25+
#### Removed
26+
27+
- ([#1863](https://github.com/mesg-foundation/engine/pull/1863)) Remove not used expected keeper.
28+
329
## [v0.25.1](https://github.com/mesg-foundation/engine/releases/tag/v0.25.1)
430

531
#### Changed

Dockerfile

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# base Go image version for building the binaries
2-
FROM golang:1.13.10 AS build
1+
ARG from=golang:1.13.10
2+
FROM $from AS build
33
WORKDIR /app
44

55
COPY go.mod go.sum ./
@@ -8,8 +8,7 @@ RUN go mod download
88
COPY . .
99
ARG version
1010

11-
RUN go build -mod=readonly -o ./bin/mesg-cli -ldflags="-s -w -X 'github.com/cosmos/cosmos-sdk/version.Name=mesg' -X 'github.com/cosmos/cosmos-sdk/version.ServerName=mesg-daemon' -X 'github.com/cosmos/cosmos-sdk/version.ClientName=mesg-cli' -X 'github.com/cosmos/cosmos-sdk/version.Version=$version'" ./cmd/mesg-cli/
12-
RUN go build -mod=readonly -o ./bin/mesg-daemon -ldflags="-s -w -X 'github.com/cosmos/cosmos-sdk/version.Name=mesg' -X 'github.com/cosmos/cosmos-sdk/version.ServerName=mesg-daemon' -X 'github.com/cosmos/cosmos-sdk/version.ClientName=mesg-cli' -X 'github.com/cosmos/cosmos-sdk/version.Version=$version'" ./cmd/mesg-daemon/
11+
RUN make build
1312

1413
# ubuntu image with binaries for distribution
1514
FROM ubuntu:18.04

Makefile

+41-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,49 @@
1-
.PHONY: build build-docker publish publish-docker-prod publish-docker-unstable test e2e dep lint build-tools protobuf changelog clean dev dev-mon
1+
.PHONY: build build-multiplatform build-docker publish publish-docker-prod publish-docker-unstable test e2e dev dev-mon dep lint build-tools protobuf changelog clean
22

33
version ?= local
44
MAJOR_VERSION := $(shell echo $(version) | cut -d . -f 1)
55
MINOR_VERSION := $(shell echo $(version) | cut -d . -f 1-2)
66

7+
LDFLAGS = "-s -w -X 'github.com/cosmos/cosmos-sdk/version.Name=mesg' -X 'github.com/cosmos/cosmos-sdk/version.ServerName=mesg-daemon' -X 'github.com/cosmos/cosmos-sdk/version.ClientName=mesg-cli' -X 'github.com/cosmos/cosmos-sdk/version.Version=$(version)'"
8+
OSS = linux darwin
9+
ARCHS = amd64 386
10+
711
# Build
812

913
build: dep
10-
./scripts/build-cli.sh "$(version)"
14+
CGO_ENABLED=0 go build -mod=readonly -o "./bin/mesg-daemon" -ldflags=$(LDFLAGS) ./cmd/mesg-daemon/
15+
CGO_ENABLED=0 go build -mod=readonly -o "./bin/mesg-cli" -ldflags=$(LDFLAGS) ./cmd/mesg-cli/
16+
17+
build-multiplatform: dep
18+
for os in $(OSS) ; do \
19+
for arch in $(ARCHS) ; do \
20+
echo "Building $$os $$arch..." ; \
21+
CGO_ENABLED=0 GOOS=$$os GOARCH=$$arch go build -mod=readonly -o "./bin/mesg-daemon-$$os-$$arch" -ldflags=$(LDFLAGS) ./cmd/mesg-daemon/ ; \
22+
CGO_ENABLED=0 GOOS=$$os GOARCH=$$arch go build -mod=readonly -o "./bin/mesg-cli-$$os-$$arch" -ldflags=$(LDFLAGS) ./cmd/mesg-cli/ ; \
23+
done \
24+
done
25+
26+
build-docker-cache:
27+
# building cache image
28+
docker build \
29+
--build-arg version=$(version) \
30+
--target build \
31+
-t mesg/engine:$(version)-build \
32+
.
33+
34+
build-docker-cache-if-needed:
35+
if [ -z "$(shell docker images -q mesg/engine:$(version)-build)" ]; then \
36+
make build-docker-cache ; \
37+
fi
1138

12-
build-docker:
39+
build-docker: build-docker-cache-if-needed
40+
# building image
1341
docker build \
1442
--build-arg version=$(version) \
43+
--build-arg from=mesg/engine:$(version)-build \
1544
-t mesg/engine:$(version) \
1645
.
46+
# building dev image
1747
docker build \
1848
-f ./Dockerfile.dev \
1949
--build-arg from=mesg/engine:$(version) \
@@ -22,8 +52,13 @@ build-docker:
2252

2353
# Publish
2454

25-
publish: build
26-
./scripts/publish-cli.sh "$(version)" "$(release-type)"
55+
publish-unstable: build-multiplatform
56+
go install github.com/tcnksm/ghr
57+
ghr -u mesg-foundation -r engine -p 1 -delete -prerelease -n "Unstable release" -b "Warning - this is an unstable release, use it only if you know what are doing." unstable ./bin
58+
59+
publish-prod: build-multiplatform
60+
go install github.com/tcnksm/ghr
61+
ghr -u mesg-foundation -r engine -p 1 -replace "$(version)" ./bin
2762

2863
publish-docker-prod: build-docker
2964
docker tag mesg/engine:$(version) mesg/engine:$(MINOR_VERSION)
@@ -82,7 +117,7 @@ protobuf: build-tools
82117
changelog:
83118
./scripts/changelog.sh $(milestone)
84119

85-
clean:
120+
clean:
86121
- rm -rf bin
87122
- docker volume rm engine
88123
- docker image rm $(shell docker images -q mesg/engine)

app/app.go

+84-8
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,20 @@ import (
1818
"github.com/cosmos/cosmos-sdk/x/auth"
1919
"github.com/cosmos/cosmos-sdk/x/auth/vesting"
2020
"github.com/cosmos/cosmos-sdk/x/bank"
21+
"github.com/cosmos/cosmos-sdk/x/crisis"
2122
distr "github.com/cosmos/cosmos-sdk/x/distribution"
23+
"github.com/cosmos/cosmos-sdk/x/evidence"
2224
"github.com/cosmos/cosmos-sdk/x/genutil"
25+
"github.com/cosmos/cosmos-sdk/x/gov"
2326
"github.com/cosmos/cosmos-sdk/x/params"
27+
paramsclient "github.com/cosmos/cosmos-sdk/x/params/client"
2428
"github.com/cosmos/cosmos-sdk/x/slashing"
2529
"github.com/cosmos/cosmos-sdk/x/staking"
2630
"github.com/cosmos/cosmos-sdk/x/supply"
31+
"github.com/cosmos/cosmos-sdk/x/upgrade"
32+
upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client"
2733
"github.com/mesg-foundation/engine/protobuf/types"
34+
"github.com/mesg-foundation/engine/x/credit"
2835
"github.com/mesg-foundation/engine/x/execution"
2936
"github.com/mesg-foundation/engine/x/instance"
3037
"github.com/mesg-foundation/engine/x/ownership"
@@ -54,8 +61,13 @@ var (
5461
params.AppModuleBasic{},
5562
slashing.AppModuleBasic{},
5663
supply.AppModuleBasic{},
64+
gov.NewAppModuleBasic(paramsclient.ProposalHandler, distr.ProposalHandler, upgradeclient.ProposalHandler),
65+
upgrade.AppModuleBasic{},
66+
evidence.AppModuleBasic{},
67+
crisis.AppModuleBasic{},
5768

5869
// Engine's AppModuleBasic
70+
credit.AppModuleBasic{},
5971
ownership.AppModuleBasic{},
6072
instance.AppModuleBasic{},
6173
process.AppModuleBasic{},
@@ -70,6 +82,7 @@ var (
7082
distr.ModuleName: nil,
7183
staking.BondedPoolName: {supply.Burner, supply.Staking},
7284
staking.NotBondedPoolName: {supply.Burner, supply.Staking},
85+
gov.ModuleName: {supply.Burner},
7386
}
7487
)
7588

@@ -109,8 +122,13 @@ type NewApp struct {
109122
distrKeeper distr.Keeper
110123
supplyKeeper supply.Keeper
111124
paramsKeeper params.Keeper
125+
govKeeper gov.Keeper
126+
upgradeKeeper upgrade.Keeper
127+
evidenceKeeper evidence.Keeper
128+
crisisKeeper crisis.Keeper
112129

113130
// Engine's keepers
131+
creditKeeper credit.Keeper
114132
ownershipKeeper ownership.Keeper
115133
instanceKeeper instance.Keeper
116134
processKeeper process.Keeper
@@ -131,7 +149,7 @@ var _ simapp.App = (*NewApp)(nil)
131149
// NewInitApp is a constructor function for engineApp
132150
func NewInitApp(
133151
logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool,
134-
invCheckPeriod uint, baseAppOptions ...func(*bam.BaseApp),
152+
invCheckPeriod uint, skipUpgradeHeights map[int64]bool, baseAppOptions ...func(*bam.BaseApp),
135153
) (*NewApp, error) {
136154
// First define the top level codec that will be shared by the different modules
137155
cdc := MakeCodec()
@@ -149,8 +167,12 @@ func NewInitApp(
149167
distr.StoreKey,
150168
slashing.StoreKey,
151169
params.StoreKey,
170+
gov.StoreKey,
171+
upgrade.StoreKey,
172+
evidence.StoreKey,
152173

153174
// Engine's module keys
175+
credit.ModuleName,
154176
ownership.ModuleName,
155177
instance.ModuleName,
156178
process.ModuleName,
@@ -179,7 +201,10 @@ func NewInitApp(
179201
app.subspaces[staking.ModuleName] = app.paramsKeeper.Subspace(staking.DefaultParamspace)
180202
app.subspaces[distr.ModuleName] = app.paramsKeeper.Subspace(distr.DefaultParamspace)
181203
app.subspaces[slashing.ModuleName] = app.paramsKeeper.Subspace(slashing.DefaultParamspace)
182-
app.subspaces[execution.ModuleName] = app.paramsKeeper.Subspace(execution.DefaultParamspace)
204+
app.subspaces[gov.ModuleName] = app.paramsKeeper.Subspace(gov.DefaultParamspace)
205+
app.subspaces[evidence.ModuleName] = app.paramsKeeper.Subspace(evidence.DefaultParamspace)
206+
app.subspaces[crisis.ModuleName] = app.paramsKeeper.Subspace(crisis.DefaultParamspace)
207+
app.subspaces[credit.ModuleName] = app.paramsKeeper.Subspace(credit.DefaultParamspace)
183208

184209
// The AccountKeeper handles address -> account lookups
185210
app.accountKeeper = auth.NewAccountKeeper(
@@ -230,6 +255,48 @@ func NewInitApp(
230255
app.subspaces[slashing.ModuleName],
231256
)
232257

258+
app.crisisKeeper = crisis.NewKeeper(
259+
app.subspaces[crisis.ModuleName],
260+
invCheckPeriod,
261+
app.supplyKeeper,
262+
auth.FeeCollectorName,
263+
)
264+
265+
app.upgradeKeeper = upgrade.NewKeeper(
266+
skipUpgradeHeights,
267+
keys[upgrade.StoreKey],
268+
app.cdc,
269+
)
270+
271+
// create evidence keeper with evidence router
272+
evidenceKeeper := evidence.NewKeeper(
273+
app.cdc,
274+
keys[evidence.StoreKey],
275+
app.subspaces[evidence.ModuleName],
276+
&stakingKeeper,
277+
app.slashingKeeper,
278+
)
279+
evidenceRouter := evidence.NewRouter()
280+
// register evidence routes
281+
evidenceKeeper.SetRouter(evidenceRouter)
282+
app.evidenceKeeper = *evidenceKeeper
283+
284+
// register the proposal types
285+
govRouter := gov.NewRouter()
286+
govRouter.
287+
AddRoute(gov.RouterKey, gov.ProposalHandler).
288+
AddRoute(params.RouterKey, params.NewParamChangeProposalHandler(app.paramsKeeper)).
289+
AddRoute(distr.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.distrKeeper)).
290+
AddRoute(upgrade.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.upgradeKeeper))
291+
app.govKeeper = gov.NewKeeper(
292+
app.cdc,
293+
keys[gov.StoreKey],
294+
app.subspaces[gov.ModuleName].WithKeyTable(gov.ParamKeyTable()),
295+
app.supplyKeeper,
296+
&stakingKeeper,
297+
govRouter,
298+
)
299+
233300
// register the staking hooks
234301
// NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks
235302
app.stakingKeeper = *stakingKeeper.SetHooks(
@@ -239,20 +306,20 @@ func NewInitApp(
239306
)
240307

241308
// Engine's module keepers
309+
app.creditKeeper = credit.NewKeeper(app.cdc, app.accountKeeper, keys[credit.StoreKey], app.subspaces[credit.ModuleName])
242310
app.ownershipKeeper = ownership.NewKeeper(app.cdc, keys[ownership.StoreKey], app.bankKeeper)
243-
app.instanceKeeper = instance.NewKeeper(app.cdc, keys[instance.StoreKey])
244-
app.processKeeper = process.NewKeeper(app.cdc, keys[process.StoreKey], app.instanceKeeper, app.ownershipKeeper, app.bankKeeper)
245311
app.serviceKeeper = service.NewKeeper(app.cdc, keys[service.StoreKey], app.ownershipKeeper)
312+
app.instanceKeeper = instance.NewKeeper(app.cdc, keys[instance.StoreKey], app.serviceKeeper)
313+
app.processKeeper = process.NewKeeper(app.cdc, keys[process.StoreKey], app.instanceKeeper, app.ownershipKeeper)
246314
app.runnerKeeper = runner.NewKeeper(app.cdc, keys[runner.StoreKey], app.instanceKeeper, app.ownershipKeeper)
247315
app.executionKeeper = execution.NewKeeper(
248316
app.cdc,
249317
keys[execution.StoreKey],
250-
app.bankKeeper,
251318
app.serviceKeeper,
252319
app.instanceKeeper,
253320
app.runnerKeeper,
254321
app.processKeeper,
255-
app.subspaces[execution.ModuleName],
322+
app.creditKeeper,
256323
)
257324

258325
// NOTE: Any module instantiated in the module manager that is later modified
@@ -261,11 +328,14 @@ func NewInitApp(
261328
genutil.NewAppModule(app.accountKeeper, app.stakingKeeper, app.BaseApp.DeliverTx),
262329
auth.NewAppModule(app.accountKeeper),
263330
bank.NewAppModule(app.bankKeeper, app.accountKeeper),
331+
crisis.NewAppModule(&app.crisisKeeper),
264332
supply.NewAppModule(app.supplyKeeper, app.accountKeeper),
333+
gov.NewAppModule(app.govKeeper, app.accountKeeper, app.supplyKeeper),
265334
distr.NewAppModule(app.distrKeeper, app.accountKeeper, app.supplyKeeper, app.stakingKeeper),
266335
slashing.NewAppModule(app.slashingKeeper, app.accountKeeper, app.stakingKeeper),
267336

268337
// Engine's modules
338+
credit.NewAppModule(app.creditKeeper),
269339
ownership.NewAppModule(app.ownershipKeeper),
270340
instance.NewAppModule(app.instanceKeeper),
271341
process.NewAppModule(app.processKeeper),
@@ -274,13 +344,15 @@ func NewInitApp(
274344
execution.NewAppModule(app.executionKeeper),
275345

276346
staking.NewAppModule(app.stakingKeeper, app.accountKeeper, app.supplyKeeper),
347+
upgrade.NewAppModule(app.upgradeKeeper),
348+
evidence.NewAppModule(app.evidenceKeeper),
277349
)
278350
// During begin block slashing happens after distr.BeginBlocker so that
279351
// there is nothing left over in the validator fee pool, so as to keep the
280352
// CanWithdrawInvariant invariant.
281353

282-
app.mm.SetOrderBeginBlockers(distr.ModuleName, slashing.ModuleName)
283-
app.mm.SetOrderEndBlockers(staking.ModuleName)
354+
app.mm.SetOrderBeginBlockers(upgrade.ModuleName, distr.ModuleName, slashing.ModuleName)
355+
app.mm.SetOrderEndBlockers(crisis.ModuleName, gov.ModuleName, staking.ModuleName)
284356

285357
// Sets the order of Genesis - Order matters, genutil is to always come last
286358
// NOTE: The genutils module must occur after staking so that pools are
@@ -291,8 +363,10 @@ func NewInitApp(
291363
auth.ModuleName,
292364
bank.ModuleName,
293365
slashing.ModuleName,
366+
gov.ModuleName,
294367

295368
// Engine's modules
369+
credit.ModuleName,
296370
ownership.ModuleName,
297371
instance.ModuleName,
298372
process.ModuleName,
@@ -301,7 +375,9 @@ func NewInitApp(
301375
execution.ModuleName,
302376

303377
supply.ModuleName,
378+
crisis.ModuleName,
304379
genutil.ModuleName,
380+
evidence.ModuleName,
305381
)
306382

307383
// register all module routes and module queriers

cmd/mesg-cli/orchestrator.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func startOrchestratorCmd(cdc *codec.Codec) *cobra.Command {
8383

8484
// orchestrator
8585
logger.Info("Starting orchestrator")
86-
orch := orchestrator.New(rpc, ep, logger, viper.GetString(flagExecPrice))
86+
orch := orchestrator.New(rpc, ep, logger)
8787
defer func() {
8888
logger.Info("Stopping orchestrator")
8989
orch.Stop()
@@ -118,7 +118,6 @@ func startOrchestratorCmd(cdc *codec.Codec) *cobra.Command {
118118
cmd.Flags().String(flagAuthorizedPubKeys, "", "The authorized pubkeys to communicate with the gRPC server")
119119
cmd.Flags().String(flagMnemonic, "", "The account's mnemonic that will be used to sign transactions")
120120
cmd.Flags().String(flagGasPrices, "", "The gas price to sign tx")
121-
cmd.Flags().String(flagExecPrice, "10000atto", "The execution price to create execution")
122121
cmd.Flags().String(flagAccNumber, "0", "The account number of the hd path to use to derive the mnemonic")
123122
cmd.Flags().String(flagAccIndex, "0", "The account index of the hd path to use to derive the mnemonic")
124123
return cmd
@@ -129,7 +128,6 @@ const (
129128
flagAuthorizedPubKeys = "authorized-pubkeys"
130129
flagMnemonic = "mnemonic"
131130
flagGasPrices = "gas-prices"
132-
flagExecPrice = "exec-price"
133131
flagAccNumber = "acc-number"
134132
flagAccIndex = "acc-index"
135133
)

0 commit comments

Comments
 (0)