* fix: mqtt-tls in default config template
- panic: json: cannot unmarshal string into Go struct field
Config.mqtt-tls of type bool
* fix: default mqtt port
- since MqttTLS is set to true by default we need to use the mqtts port
as well.
panic: network Error : EOF
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* added TSL support for mqtt
* added configuration value mqtt-tls (bool) to support tls and non-tls connections (testing)
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
* Initializing rootDir of dao and machine keeper with the home path of the validator key material
* added Block height logging of context decorator
* removed SetRoot usage
* fixed data races of the attest machine go-routine
* reproduction of the issue
* fixed testing URL issue
* refactored the machine-nft functions/mock
* fixed keeper.param read-bug that increased the gas prices in an inconsistent way
* increased the validator number to 3 for all e2e tests
* added go routine to attest machine workflow
---------
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
Co-authored-by: Julian Strobl <jmastr@mailbox.org>
Co-authored-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
* Revert "feat: bring back config parameters"
This reverts commit 4ab279033cae5e351cd13c348a21e4717705f341.
Unnecessary because cosmos sdk handles chain upgrades properly: it holds
the chain and waits for a new binary version.
* refactor: use testnet parameters as default in x/dao
---------
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* updated planetmint-go dependency in lib/tx
* added two additional distribution addresses. splitted up the previous investor pool of 31% into three pools:
* early investors 19%
* investors 10%
* strategic 2%
* adjusted distribution request message
* adjusted distribution result
* adjusted distribution order
* refactored reissuance and distribution msg methods to be more readable
* fixed token distribution test case
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
* feat: verify the availability of PoP participants
* simplified and improved logging
* added MQTT-based availability check for PoP participants
* extended MQTT mocking
* Only the block proposer will send out the MQTT messages to the pop participants
* Added a configuration value for the MQTT response timeout
* removed parallel execution of one test case
* added r/w locking to the MQTT response processing
* set MQTT timeout unit to ms
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* refactor: switch log level for PoP messages
Needs to be the other way around, otherwise we receive up to 720
messages on info level.
* refactor: align spelling in comments and log messages
* fix: config key
Commit fc9e795bd0678746993806ac21c92a675ed7006f changed the reissuance
variable. The config key was forgotten to change.
* refactor: return early to reduce indentation
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
Reissue and reissuance are standalone words and should not contain an
uppercase `I` in the variable name. This should only happen to connect
different word like: file name gets `fileName` resp. `FileName`.
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* added MQTT lib
* added MQTT config params: domain, port user, password
* sending PoPInit commands to devices par of the pop (after delivery of the PoPInit message)
* Added test case to verify the working of the MQTT connection (test is skipped and designed for manual tests (lack of credentials))
---------
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
* Fix typo and align log messages
* Align some variable names with rest of the program
* [log] Fix log formatting and change log level
* Fix comment
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* Split asset registry endpoint
Into scheme, domain and path. We need the domain in the liquid contract.
* Switch to pure Go implementation
This is a reimplementation of the `issue2liquid.py`.
See https://github.com/rddl-network/issuer_service
// Closes#196
* Move elements RPC URL into config
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* [staticcheck] Fix comments on exported functions and structs
* [ci] Improve staticcheck setup
- Add global staticcheck.conf file
- Ignore: at least one file in a package should have a package comment (ST1000)
- Ignore deprecation warnings. They are reported by golangci-lint and
there we have a proper way to exclude generated files.
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* adjust issuePoPRewards to mint stagedCRDDL
* add GetChallengeRange
* add resolveStagedClaims on ReissueRDDLResult msg
* move claim resolve to distribution result
* add StagedDenom and ClaimDenom to config
* added the prepare4linting.sh script
* renamed PoPEpochs to PopEpochs
* renamed DistributionAddressPoP to DistributionAddressPop
* added config value ReIssuanceEpochs
* detached the re-issuance from the distribution process and schedule them independently
* changed logging messages
* added an explicit util/kv_serialize.go file to have all KV serialization done
* switched to Bigendian serialization of int64 to have the ordered list on the kvstore
* added ComputeReIssuanceValue to enable re-issuances once a day or defined by ReIssuanceEpoch
* integrated a ReIssuanceValue computation test case
* adjusted the challenges test cases to be epoch-dependent
* added ReIssuances per ReIssuanceEpoch
* extended the Reissue message
* checking ReIssuanceProposal in the ante handler
* added precision setter for the UINT to RDDL token converter (and test cases)
* add e2e test case for pop rewards
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
Co-authored-by: Jürgen Eckel <juergen@riddleandcode.com>
* [linter] Add `musttag`
Enforce field tags in (un)marshaled structs.
* [linter] Add `nestif`
Reports deeply nested if statements.
* [linter] Add `noctx`
Finds sending http request without context.Context.
* [linter] Add `paralleltest`
Paralleltest detects missing usage of t.Parallel() method in your Go
test.
* [linter] Add `tagalign`
Check that struct tags are well aligned.
* [linter] Add `tagliatelle`
Checks the struct tags.
* [linter] Add `whitespace`
Tool for detection of leading and trailing whitespace.
* [paralleltest] Exclude files bc of data race in tests
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* distributed & result msgs
* added DistributionResult
* added RDDL token conversion methods
* set proper validatoraddress within the testcases for e2e/dao
* set proper root dir for test cases
* fixed some wordings
---------
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
* add MintAddress to params.proto
* ignite scaffold message update-params params:Params --module dao
* add dao get and set params
* make dao.MsgUpdateParams.Params non-nullable
* use GetMintAddress in ante handler
* adjust dao e2e test suit for mint address param
* change msg creator to authority and set gov module as default in gov proposal
* fix staticcheck error
* remove depricated config param
* fix linter errors
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
* add mint address to config file
* ignite scaffold type mint-request beneficiary amount liquid-tx-hash --module dao
* add mintrequest stores
* rename mint_request.go
* add unit tests for mint request store
* ignite scaffold message mint-token mint-request:MintRequest --module dao
* add ante handler for mint address
* add msg validation for mint request
* fix staticcheck error
* ignite scaffold query get-mint-requests-by-hash hash --response mint-request:MintRequest --module dao
* add a query for mint request and additional validation for msg server
* add mock for mint unit testing
* add unit test for mint token msg server
* add unit tests for query mint requests by hash
* ignite scaffold query mint-requests-by-address address --response mint-requests:MintRequests --module dao
* implement query mint requests by address and unit tests
* add e2e test for token mint
---------
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
* Fix package and domain name
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* Add extended public key as `IssuerPlanetmint`
This patch introduces parts of the `chaincfg` for Planetmint and
especially the magic bytes that produces extended keys with the prefix
`pmpr` for a Planetmint extended private key and `pmpb` for a Planetmint
extended public key.
// Closes https://github.com/rddl-network/issues/issues/30
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* Validate Planetmint extended public key during machine attestation
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* [lint] Fix error return value is not checked
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
---------
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
* added OSC response listener with logging
added Machine NFT issuance for each machine attestation process
added CID and Planetmint Issuer extPublicKey to the issuance process
removed type inconsistency
* added machine NFT creation criteria
* [toml] Parsing does not allow sub-structs
* made OSC listener port configurable
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
Co-authored-by: Julian Strobl <jmastr@mailbox.org>
This patch extends `app.toml` and adds the following section with these
default values:
```
[planetmint]
watchmen-endpoint = "localhost"
watchmen-port = 7401
```
A global singleton `plmntConfig` is introduced to save and access the
values similar to how cosmos does it (see
vendor/github.com/cosmos/cosmos-sdk/types/config.go).
Different environments can be managed by changing the values in
`app.toml` and restarting the daemon.
// Closes#53
Signed-off-by: Julian Strobl <jmastr@mailbox.org>