A distributed, proof of stake blockchain designed for the financial services industry.

Overview
Provenance


Provenance Blockchain

Provenance is a distributed, proof of stake blockchain designed for the financial services industry.

For more information about Provenance Inc visit https://provenance.io

The Provenance app is the core blockchain application for running a node on the Provenance Network. The node software is based on the open source Tendermint consensus engine combined with the Cosmos SDK and custom modules to support apis for financial services. Figure is the first and primary user of the Provenance Blockchain.

Status

Latest Release Apache 2.0 License Go Report Code Coverage LOC Lint Status

The Public Provenance blockchain is under active development. While the modules in this blockchain are based on implementations from the private Figure Technologies blockchain launched in 2018 there are still breaking API changes expected especially related to the transistion to Cosmos SDK v040 and GRPC.

WARNING: Versions prior to the launch of mainnet and the associated 1.0.0 version should be considered unstable and API changes expected.

Quick Start

The Provenance Blockchain is based on Cosmos, the sdk introduction is a useful starting point.

Developers can use a local checkout and the make targets make run and make localnet-start to run a local development network.

Note: Requires Go 1.15+

Testnet

An alpha version of the Provenance network testnet with limited participation was launch in January 2021.

Mainnet

A public mainnet launch for the public Provenance blockchain is set for the end of Q2 2021.

Issues
  • Error setting mainnet node: BINARY UPDATED BEFORE TRIGGER! UPGRADE

    Error setting mainnet node: BINARY UPDATED BEFORE TRIGGER! UPGRADE

    Summary of Bug

    Trying to set up a mainnet full node using version 1.5.0 through systemd service but run into the following error

    Started Provenance Node Service.
    {"level":"error","time":"2021-07-06T01:23:18Z","message":"BINARY UPDATED BEFORE TRIGGER! UPGRADE \"bluetiful\" - in binary but not executed on chain"}
    panic: BINARY UPDATED BEFORE TRIGGER! UPGRADE "bluetiful" - in binary but not executed on chain
    goroutine 1 [running]:
    github.com/cosmos/cosmos-sdk/x/upgrade.BeginBlocker(0x7ffe783a8ecc, 0x1e, 0xc000165c80, 0x2660340, 0xc000cdd040, 0x26a1d40, 0xc000cd51b0, 0xc000ee3770, 0x2687f40, 0xc000052178, ...)
            github.com/cosmos/[email protected]/x/upgrade/abci.go:84 +0x12a9
    github.com/cosmos/cosmos-sdk/x/upgrade.AppModule.BeginBlock(...)
            github.com/cosmos/cosmo[email protected]/x/upgrade/module.go:127
    github.com/cosmos/cosmos-sdk/types/module.(*Manager).BeginBlock(0xc000baf960, 0x2687f40, 0xc000052178, 0x26a1740, 0xc001084d40, 0xb, 0x0, 0xc00046f6b0, 0xd, 0x55e9e, ...)
            github.com/cosmos/[email protected]/types/module/module.go:338 +0x1f8
    github.com/provenance-io/provenance/app.(*App).BeginBlocker(...)
            github.com/provenance-io/provenance/app/app.go:642
    github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).BeginBlock(0xc0004664e0, 0xc000325440, 0x20, 0x20, 0xb, 0x0, 0xc00046f6b0, 0xd, 0x55e9e, 0x804506d, ...)
            github.com/cosmos/[email protected]/baseapp/abci.go:191 +0x7f8
    github.com/tendermint/tendermint/abci/client.(*localClient).BeginBlockSync(0xc001041560, 0xc000325440, 0x20, 0x20, 0xb, 0x0, 0xc00046f6b0, 0xd, 0x55e9e, 0x804506d, ...)
            github.com/tendermint/[email protected]/abci/client/local_client.go:274 +0xfa
    github.com/tendermint/tendermint/proxy.(*appConnConsensus).BeginBlockSync(0xc00049f7c0, 0xc000325440, 0x20, 0x20, 0xb, 0x0, 0xc00046f6b0, 0xd, 0x55e9e, 0x804506d, ...)
            github.com/tendermint/[email protected]/proxy/app_conn.go:81 +0x75
    github.com/tendermint/tendermint/state.execBlockOnProxyApp(0x2688e40, 0xc0010417a0, 0x2695f80, 0xc00049f7c0, 0xc000ec81e0, 0x26a1940, 0xc00049ed40, 0x1, 0xc001449cc0, 0x20, ...)
            github.com/tendermint/[email protected]/state/execution.go:307 +0x51b
    github.com/tendermint/tendermint/state.(*BlockExecutor).ApplyBlock(0xc00011b3b0, 0xb, 0x0, 0xc00046f2d8, 0x8, 0xc00046f2f0, 0xd, 0x1, 0x55e9d, 0xc001449cc0, ...)
            github.com/tendermint/[email protected]/state/execution.go:140 +0x165
    github.com/tendermint/tendermint/consensus.(*Handshaker).replayBlock(0xc0020341c8, 0xb, 0x0, 0xc00046f2d8, 0x8, 0xc00046f2f0, 0xd, 0x1, 0x55e9d, 0xc001449cc0, ...)
            github.com/tendermint/[email protected]/consensus/replay.go:503 +0x292
    github.com/tendermint/tendermint/consensus.(*Handshaker).ReplayBlocks(0xc0020341c8, 0xb, 0x0, 0xc00046f2d8, 0x8, 0xc00046f2f0, 0xd, 0x1, 0x55e9d, 0xc001449cc0, ...)
            github.com/tendermint/[email protected]/consensus/replay.go:416 +0xdb8
    github.com/tendermint/tendermint/consensus.(*Handshaker).Handshake(0xc0020341c8, 0x26a6220, 0xc0000e6270, 0x1, 0x1)
            github.com/tendermint/[email protected]/consensus/replay.go:268 +0x478
    github.com/tendermint/tendermint/node.doHandshake(0x26a1940, 0xc00049ed40, 0xb, 0x0, 0xc00046f2d8, 0x8, 0xc00046f2f0, 0xd, 0x1, 0x55e9d, ...)
            github.com/tendermint/[email protected]/node/node.go:308 +0x1d8
    github.com/tendermint/tendermint/node.NewNode(0xc000ee8b40, 0x267de00, 0xc0004b7ae0, 0xc00107c3e0, 0x263a340, 0xc00192bda0, 0xc00107c450, 0x2412828, 0xc00107c540, 0x2688e40, ...)
            github.com/tendermint/[email protected]/node/node.go:715 +0x2085
    github.com/cosmos/cosmos-sdk/server.startInProcess(0xc000f6fc60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26920e0, 0xc000eaf540, ...)
            github.com/cosmos/[email protected]/server/start.go:244 +0x565
    github.com/cosmos/cosmos-sdk/server.StartCmd.func2(0xc000f3d900, 0xc000f6fdc0, 0x0, 0x2, 0x0, 0x0)
            github.com/cosmos/[email protected]/server/start.go:120 +0x1ec
    github.com/spf13/cobra.(*Command).execute(0xc000f3d900, 0xc000f6fda0, 0x2, 0x2, 0xc000f3d900, 0xc000f6fda0)
            github.com/spf13/[email protected]/command.go:852 +0x47c
    github.com/spf13/cobra.(*Command).ExecuteC(0xc000e83b80, 0x0, 0x0, 0xc000f05650)
            github.com/spf13/[email protected]/command.go:960 +0x375
    github.com/spf13/cobra.(*Command).Execute(...)
            github.com/spf13/[email protected]/command.go:897
    github.com/spf13/cobra.(*Command).ExecuteContext(...)
            github.com/spf13/[email protected]/command.go:890
    github.com/provenance-io/provenance/cmd/provenanced/cmd.Execute(0xc000e83b80, 0x26959e0, 0xc000ec49c0)
            github.com/provenance-io/provenance/cmd/provenanced/cmd/root.go:123 +0x315
    main.main()
            github.com/provenance-io/provenance/cmd/provenanced/main.go:11 +0x2a
    Main process exited, code=exited, status=2/INVALIDARGUMENT
    

    Version

    Provenance: v1.5.0 LevelDB: version 1.23

    Steps to Reproduce

    Set up a systemd service to run the binary file


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    opened by xysblob 17
  • Validator: Account not found: key not found rpc error

    Validator: Account not found: key not found rpc error

    Summary of Bug

    I hit an rpc error as key not found as below while creating a validator node on my ubuntu machine.

    $ provenanced tx staking create-validator --moniker secured_provenance --pubkey tpvalconspub1zcjduepq5x4s983f2ueq3tr6mnkzcc3jvp637nnmu4swu4727c6u959qw9vqua29kg  --commission-rate=1.0 --commission-max-rate=1.0 --commission-max-change-rate=1.0 --min-self-delegation=1 --from=secure_key --amount 65000nhash --keyring-dir /home/ubuntu/.config/Provenance/ -t --broadcast-mode block
    Error: rpc error: code = NotFound desc = account tp14qrnd9jplk4ag2e8620396mrag34esvenlaj6s not found: key not found
    

    I have used the pub key derived from the show-validator command as below:

    $ provenanced --testnet tendermint show-validator
    tpvalconspub1zcjduepq5x4s983f2ueq3tr6mnkzcc3jvp637nnmu4swu4727c6u959qw9vqua29kg
    

    The account and key-dir seems to be valid and active:

    $ provenanced --testnet q bank balances tp14qrnd9jplk4ag2e8620396mrag34esvenlaj6s --node=tcp://rpc-0.test.provenance.io:26657
    balances:
    - amount: "2000000000"
      denom: nhash
    pagination:
      next_key: null
      total: "0"
    
    $ provenanced keys list --keyring-backend test -t
    - name: secure_key
      type: local
      address: tp14qrnd9jplk4ag2e8620396mrag34esvenlaj6s
      pubkey: tppub1addwnpepqwgpkqemkvxjwv2nuvz5jehu9z89qcx5vme8356q5klh3lrj3ds2xw4lqg5
      mnemonic: ""
      threshold: 0
      pubkeys: []
    

    Version

    $ provenanced version v1.0.0

    Steps to Reproduce

    git clone -b v1.0.0 https://github.com/provenance-io/provenance
    cd provenance && make install
    export PATH=$PATH:/home/ubuntu/go/bin
    provenanced init secured_provenance --testnet
    curl https://raw.githubusercontent.com/provenance-io/testnet/main/pio-testnet-1/genesis.json > genesis.json
    export PIO_HOME=/home/ubuntu/.config/Provenance
    mkdir -p $PIO_HOME/config
    mv genesis.json $PIO_HOME/config
    Edit $PIO_HOME/config/config.toml with 
        db_backend = "cleveldb" 
    	seeds = "[email protected]:26656,[email protected]"
    	namespace = "provenance"
    go get github.com/provenance-io/cosmovisor/cmd/cosmovisor    
    mkdir -p $PIO_HOME/cosmovisor/install
    cd $PIO_HOME/cosmovisor/install
    git clone https://github.com/provenance-io/cosmovisor.git
    cd cosmovisor
    make
    cp build/cosmovisor /home/ubuntu/go/bin/cosmovisor
    
    export DAEMON_NAME="provenanced"
    export DAEMON_HOME="${PIO_HOME}"
    export DAEMON_ALLOW_DOWNLOAD_BINARIES="true" 
    export DAEMON_RESTART_AFTER_UPGRADE="true"
    
    # Set up keys
    # Whilelist the account 
    
    
    mkdir -p $PIO_HOME/cosmovisor/genesis/bin
    mkdir -p $PIO_HOME/cosmovisor/upgrades
    ln -sf $PIO_HOME/cosmovisor/genesis/bin $PIO_HOME/cosmovisor/genesis/current
    
    cp $(which provenanced) $PIO_HOME/cosmovisor/genesis/bin 
    ln -sf $PIO_HOME/cosmovisor/genesis/bin/provenanced $(which provenanced)
    
    # get the pub key 
    provenanced --testnet tendermint show-validator   
    		
    # Run full node
    cosmovisor start --testnet --home $PIO_HOME --p2p.seeds [email protected]:26656,[email protected]:26656 --x-crisis-skip-assert-invariants
    
    # Run validator
    provenanced  tx staking create-validator --moniker secured_provenance --pubkey tpvalconspub1zcjduepq5x4s983f2ueq3tr6mnkzcc3jvp637nnmu4swu4727c6u959qw9vqua29kg  --commission-rate=1.0 --commission-max-rate=1.0 --commission-max-change-rate=1.0 --min-self-delegation=1 --from=secure_key --amount 65000nhash --keyring-dir /home/ubuntu/.config/Provenance/ -t --broadcast-mode block
    

    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    opened by prabhanjangururaj 16
  • WASM Restricted Marker Transfer Question

    WASM Restricted Marker Transfer Question

    Problem Definition

    Currently, it is not possible to perform a restricted marker transfer from a smart contract, even if the contract has transfer permission. This is due to the fact that the marker module requires chain of trust (ie both admin and sender must sign). See here.

    However, the wasm module requires that the contract be the only signer of Msgs encoded through the internal API. See here.

    Leaving this as an open question at the moment. What is the appropriate (secure) way to allow smart contracts to utilize transfer of restricted marker tokens?

    This is important for the ATS exchange contract work being done by @ktalley-figure - used by @jtalis and @leeduan

    Some food for thought:

    • Create a Msg only used by provwasm
    • Some sort of "pre-authorized" transfer permission for smart contracts on accounts holding restricted markers.
    • Both the above?
    • Can we just allow 'admin' as the signer?

    Any other ideas?


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    enhancement question 
    opened by ghost 15
  • Decentralized discovery for object store instances

    Decentralized discovery for object store instances

    Summary

    A decentralized discovery method for object stores to connect to each other using the blockchain

    Problem Definition

    Existing P8e object stores use a centralized system for connection and discovery. With the transition to a decentralized public network this central relay point will no longer exist. A method for an address to publish a list of endpoint(s) where partner object stores can authoritatively discover and connect is required.

    Proposal

    Create a record on the blockchain that is controlled by an address and allows it to publish records indicating endpoints available for partners to connect to.

    1. Add a new structure and store on chain under the owner address
    2. Add appropriate read/write methods that allow the owner address to maintain a given entry
    3. Provide a method that returns a list of records for a scope by linking against the "data_access" list of addresses that control which accounts the off-chain information should be provisioned for.

    Implementation

    The following simple structure will be used to hold a reference for a locator endpoint for a given account. The identified account will be the one that owns/controls the record and must sign requests to modify it.

    message ObjectStoreEndpoint {
      // account address the endpoint is owned by
      string owner = 1;
      // locator endpoint uri
      string locator_uri = 2;
    }
    
    • [x] Create a new proto message for ObjectStoreEndpoint
    • [x] Implement ValidateBasic for ObjectStoreEndpoint
    • [x] Add NewObjectStoreEndpoint functions for creating an instance of ObjectStoreEndpoint
    • [x] Create test suite to cover basic validation logic
    • [x] Implement appropriate Stringer interface method, add test case
    • [x] Create associated keeper file for ObjectStoreEndpoint.
      • [x] Create a byte code in the keys.go file for the new type, add methods to create a kvstore key against the address of the user appended to this new type type byte.
      • [x] Get/Set/Remove methods for object in state store (include events and instrumentation publishing).
      • [x] Special query method that returns all of the registered endpoints for a scope / data_access list
    • [x] Wire up msg_server and query_server endpoints to new keeper methods.

    For Admin Use

    • [x] Not duplicate issue
    • [x] Appropriate labels applied
    • [x] Appropriate contributors tagged
    • [x] Contributor assigned/self-assigned
    security metadata 
    opened by iramiller 7
  • Remove

    Remove "send enabled" on marker removal and in bulk on 1.10.0 upgrade

    Description

    Remove the "send enabled" bank denom metadata in cases where a marker is deleted. Also add an upgrade handler (lava) that iterates through the "send enabled" metadata and removes it for any that is not associated with a marker.

    closes: #819


    Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.

    • [x] Targeted PR against correct branch (see CONTRIBUTING.md)
    • [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
    • [ ] Wrote unit and integration tests
    • [ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
    • [ ] Added relevant godoc comments.
    • [ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
    • [ ] Re-reviewed Files changed in the Github PR explorer
    • [ ] Review Codecov Report in the comment section below once CI passes
    opened by derekadams 6
  • authz metadata implementation

    authz metadata implementation

    Description

    • Added check for authz grants when there are missing signatures in metadata transactions.

    closes: #516


    Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.

    • [x] Targeted PR against correct branch (see CONTRIBUTING.md)
    • [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
    • [x] Wrote unit and integration tests
    • [x] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
    • [x] Added relevant godoc comments.
    • [x] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
    • [x] Re-reviewed Files changed in the Github PR explorer
    • [x] Review Codecov Report in the comment section below once CI passes
    opened by egaxhaj 6
  • Add context field to sessions.

    Add context field to sessions.

    Description

    Add a context field to the Session message.

    Also add a write-session CLI command and standardize the Use lines for the metadata tx CLI commands based on the cobra documentation.

    closes: #276


    Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.

    • [x] Targeted PR against correct branch (see CONTRIBUTING.md)
    • [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
    • [ ] Wrote unit and integration tests
    • [x] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
    • [ ] Added relevant godoc comments.
    • [x] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
    • [x] Re-reviewed Files changed in the Github PR explorer
    • [ ] Review Codecov Report in the comment section below once CI passes
    bug metadata 
    opened by dwedul-figure 6
  • Denom Metadata: Require unique denom strings and delimiter after SI prefix.

    Denom Metadata: Require unique denom strings and delimiter after SI prefix.

    Summary

    A denom string must uniquely identify a marker. If a denom string ambiguously refers to two or more markers, then we don't actually know the coin in question.

    Problem Definition

    Current restrictions require a denom unit name or alias to be either the root coin name, or an SI Prefix + the root coin name. This will cause a collision in some cases when new markers are being created. For example, if an existing marker has a root coin name of oocoin, it might have a denom unit for foocoin (being one "femto oocoin"). Then a new coin comes along named "foocoin". We create the marker for it including a denom unit for the root coin name "foocoin". Now, if someone is trying to do a transaction with "1000 foocoin", we don't know which one they're talking about.

    Proposal

    • [ ] Require either a - or . between the SI prefix and root coin name of all denom unit names and aliases. Since the base name and display name must both be denom units, this applies to those as well (for free).
    • [ ] Update GetRootCoinName to remove any leading - or . (for cases when the root coin name isn't in a denom unit entry).
    • [ ] None of the denom unit names or aliases can start with a - or ..
    • [ ] Restrict denom names and aliases to 63 characters long (including any prefix and delimiter).
    • [ ] Require all denom unit names and aliases to be unique across the chain.
      • [ ] Create an index for all denom unit names and aliases in the kvstore.
        • [ ] The key should have this format: <key byte><denom name><delimiter byte><base name>
          • [ ] The should just be a single byte that uniquely identifies the index entries.
          • [ ] The should be the name as bytes.
          • [ ] The can be anything as long as it's not possible in a denom name. Maybe just reuse the here.
          • [ ] The should be the base name as bytes (the same base name used in the kvstore key for the marker).
        • [ ] The value should just be 0x01.
        • [ ] Index entries should be made for all denom metadata.Denom strings, and all metadata.Aliases entry strings.
        • [ ] Create an iterator for the index that takes in a prefix to iterate over, breaks each key into the denom and base name, and calls a function with the denom and base name as parameters.
      • [ ] During ValidateDenomMetadataExtended check the index for existing entries for each denom name and alias that refer to different denom base names.
    • [ ] Update DenomMetadata query to use the new index for looking up the denom metadata by denom string.

    Reasoning

    By requiring a delimiter after the SI prefix, we can ensure that a prefixed denom for an existing coin does not collide with the root coin name of a new coin. E.g. "foocoin" must refer to the root coin name of "foocoin" because there's no delimiter, and "f-oocoin" must be a "femto oocoin". By also not allowing the root coin name to start with a delimiter, there is no room for ambiguity with "f-oocoin".

    By indexing all the names an aliases, enforcing uniqueness becomes easy. It also opens up possibilities for more easily finding markers and their associated entries.


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    marker 
    opened by dwedul-figure 6
  • Feature/named types

    Feature/named types

    Description

    Typed Events and Metric counters in Name Module #85

    closes: #85


    Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.

    • [x] Targeted PR against correct branch (see CONTRIBUTING.md)
    • [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
    • [x] Wrote unit and integration tests
    • [ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
    • [x] Added relevant godoc comments.
    • [x] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
    • [ ] Re-reviewed Files changed in the Github PR explorer
    • [x] Review Codecov Report in the comment section below once CI passes
    opened by arnabmitra 6
  • Fix versioning in binary, docker, and others; to reference new VERISON string in makefile.

    Fix versioning in binary, docker, and others; to reference new VERISON string in makefile.

    Description

    Fix the versioning in docker and native binaries. Build docker image using same make target as native binaries to ensure version args get passed in to go build.


    Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.

    • [ ] Targeted PR against correct branch (see CONTRIBUTING.md)
    • [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
    • [ ] Wrote unit and integration tests
    • [ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
    • [ ] Added relevant godoc comments.
    • [ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
    • [ ] Re-reviewed Files changed in the Github PR explorer
    • [ ] Review Codecov Report in the comment section below once CI passes
    opened by mtps 6
  • Added documentation for doing a pre-auth to the docs/ folder

    Added documentation for doing a pre-auth to the docs/ folder

    Description

    I added documentation around pre-authorization and how to use it.

    closes: #449


    Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.

    • [ ] Targeted PR against correct branch (see CONTRIBUTING.md)
    • [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
    • [ ] Wrote unit and integration tests
    • [ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
    • [ ] Added relevant godoc comments.
    • [ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
    • [ ] Re-reviewed Files changed in the Github PR explorer
    • [ ] Review Codecov Report in the comment section below once CI passes
    documentation marker authz 
    opened by fkneeland-figure 5
  • fix marker module double decrement bug

    fix marker module double decrement bug

    Description

    • Fix double decrement bug in marker module
    • Added MarkerTransferAuthorization tests
    • Added marker module authzHandler tests

    closes: #903


    Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.

    • [x] Targeted PR against correct branch (see CONTRIBUTING.md)
    • [x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
    • [x] Wrote unit and integration tests
    • [ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
    • [ ] Added relevant godoc comments.
    • [x] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
    • [x] Re-reviewed Files changed in the Github PR explorer
    • [ ] Review Codecov Report in the comment section below once CI passes
    opened by egaxhaj 1
  • Marker module authzHandler function is double decrementing

    Marker module authzHandler function is double decrementing

    Summary of Bug

    When there is a MsgTransferRequest the Accept method decrements funds and returns an updated MarkerTrasnferAuthorization with the new limit amount when there exists an msg.administrator. Then the funds are again decremented in the authzHandler function in the Marker module.

    Line 710: https://github.com/provenance-io/provenance/blob/1283582fdc559857ce2d5fc1af3a39a904abd471/x/marker/keeper/marker.go#L699-L717

    We're deleting here when limitLeft.IsZero() and ignoring accept.Delete which is set by shouldDelete (see below). If we check for if accept.Delete { ... } it helps avoid type casting and allows for other authorization types to work as well.

    The logic in authzHandler() and MarkerTransferAuthorization.Accept() are confusing.

    https://github.com/provenance-io/provenance/blob/1283582fdc559857ce2d5fc1af3a39a904abd471/x/marker/types/authz.go#L26-L44

    Line 40: Why is the update occurring in the marker module?

    Version

    Steps to Reproduce


    For Admin Use

    • [x] Not duplicate issue
    • [x] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    bug marker authz 
    opened by egaxhaj 3
  • Publish container images to GHCR.

    Publish container images to GHCR.

    Summary

    Currently containers are published to docker hub. In addition to the hub the GitHub container registry directly associated with the Provenance project should be used.

    Problem Definition

    The docker hub is not the only container registry available. To increase awareness of the published container images for the provenanced project we should also publish on the ghcr within the provenance project.

    Proposal

    Add an additional publishing step for GitHub container registry along with the current standard docker hub version.

    https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    nice-to-have CI dependencies github_actions 
    opened by iramiller 0
  • Clean up the Mango RC upgrade handlers.

    Clean up the Mango RC upgrade handlers.

    Description

    This PR is currently just to get a run of the release workflow so we have something to test our credentials with.

    For some reason, github didn't fire off the checks when it was in Draft, but it's not a PR that's ready to be merged.


    Before we can merge this PR, please make sure that all the following items have been checked off. If any of the checklist items are not applicable, please leave them but write a little note why.

    • [ ] Targeted PR against correct branch (see CONTRIBUTING.md)
    • [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
    • [ ] Wrote unit and integration tests
    • [ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
    • [ ] Added relevant godoc comments.
    • [ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
    • [ ] Re-reviewed Files changed in the Github PR explorer
    • [ ] Review Codecov Report in the comment section below once CI passes
    opened by dwedul-figure 1
  • Publish Java/Kotlin proto libraries for release candidates.

    Publish Java/Kotlin proto libraries for release candidates.

    Summary

    Publish fresh builds of the Java/Kotlin proto libraries with release candidates.

    Problem Definition

    When we upgrade testnet to a release candidate, the Java/Kotlin proto libraries are not available for things like explorer to switch to.

    Secondarily, if there's a problem with the Java/Kotlin proto build process, we don't know until we tag a release.

    Proposal

    In the .github/workflows/release.yml workflow, the Java/Kotlin proto libraries aren't published for release candidate builds. The build happens, but it doesn't get published. This can be an issue with things like the testnet explorer while testnet is on an rc version.

    Secondarily, please consider having the Java/Kotlin libraries always build, but just don't publish them. That would reflect the other jobs in that workflow where things are built, but not published.


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    good first issue CI github_actions 
    opened by dwedul-figure 0
Releases(v1.11.1-rc4)
  • v1.11.1-rc2(Jun 22, 2022)

  • v1.11.0(Jun 13, 2022)

    v1.11.0 - 2022-06-13

    Features

    • Add CONTROLLER, and VALIDATOR PartyTypes for contract execution. #824
    • Add FeeGrant allowance support for marker escrow accounts #406
    • Bump Cosmos-SDK to v0.45.4-pio-1, which contains Cosmos-SDK v0.45.4 and the update to storage of the bank module's SendEnabled information. PR 850
    • Add MsgAssessCustomMsgFeeRequest to add the ability for a smart contract author to charge a custom fee #831

    Bug Fixes

    • Move buf.build push action to occur after PRs are merged to main branch #838
    • Update third party proto dependencies #842

    Improvements

    • Add restricted status info to name module cli queries #806
    • Store the bank module's SendEnabled flags directly in state instead of as part of Params. This will drastically reduce the costs of sending coins and managing markers. PR 850
    • Add State Sync readme #859

    State Machine Breaking

    • Move storage of denomination SendEnabled flags into bank module state (from Params), and update the marker module to correctly manipulate the flags in their new location. PR 850
    Source code(tar.gz)
    Source code(zip)
    plan-v1.11.0.json(420 bytes)
    protos-v1.11.0.zip(197.65 KB)
    provenance-darwin-amd64-v1.11.0.zip(29.76 MB)
    provenance-linux-amd64-v1.11.0.zip(30.76 MB)
    sha256sum.txt(203 bytes)
  • v1.10.0(May 11, 2022)

    v1.10.0 - 2022-05-11

    Summary

    Provenance 1.10.0 includes upgrades to the underlying CosmWasm dependencies and adds functionality to remove orphaned metadata in the bank module left over after markers have been deleted.

    Improvements

    • Update wasmvm dependencies and update Dockerfile for localnet #818
    • Remove "send enabled" on marker removal and in bulk on 1.10.0 upgrade #821
    Source code(tar.gz)
    Source code(zip)
    plan-v1.10.0.json(420 bytes)
    protos-v1.10.0.zip(194.68 KB)
    provenance-darwin-amd64-v1.10.0.zip(29.79 MB)
    provenance-linux-amd64-v1.10.0.zip(30.80 MB)
    provenanced-ubuntu-18.04.gz(28.58 MB)
    sha256sum.txt(203 bytes)
  • v1.9.0(Apr 25, 2022)

    v1.9.0 - 2022-04-25

    Summary

    Provenance 1.9.0 brings some minor features and security improvements.

    Features

    • Add add-genesis-msg-fee command to add msg fees to genesis.json and update Makefile to have pre-defined msg fees #667
    • Add msgfees summary event to be emitted when there are txs that have fees #678
    • Adds home subcommand to the cli's config command [#620] (https://github.com/provenance-io/provenance/issues/620)
    • Add support for rocksdb and badgerdb #702
    • Create dbmigrate utility for migrating a data folder to use a different db backend #696

    Improvements

    • When the start command encounters an error, it no longer outputs command usage #670
    • Change max length on marker unresticted denom from 64 to 83 #719
    • Set prerelease to true for release candidates. #666
    • Allow authz grants to work on scope value owners #755
    • Bump wasmd to v0.26 (from v0.24). #799
    Source code(tar.gz)
    Source code(zip)
    plan-v1.9.0.json(416 bytes)
    protos-v1.9.0.zip(194.68 KB)
    provenance-darwin-amd64-v1.9.0.zip(29.89 MB)
    provenance-linux-amd64-v1.9.0.zip(30.30 MB)
    sha256sum.txt(201 bytes)
  • v1.8.2(Apr 22, 2022)

    v1.8.2 - 2022-04-22

    Summary

    Provenance 1.8.2 is a point release to fix an issue with "downgrade detection" in Cosmos SDK. A panic condition occurs in cases where no update handler is found for the last known upgrade, but the process for determining the last known upgrade is flawed in Cosmos SDK 0.45.3. This released uses an updated Cosmos fork to patch the issue until an official patch is released. Version 1.8.2 also adds some remaining pieces for ADR-038 that were missing in the 1.8.1 release.

    Bug Fixes

    • Order upgrades by block height rather than name to prevent panic #106

    Improvements

    • Add remaining updates for ADR-038 support #786
    Source code(tar.gz)
    Source code(zip)
    plan-v1.8.2.json(416 bytes)
    protos-v1.8.2.zip(194.59 KB)
    provenance-darwin-amd64-v1.8.2.zip(27.79 MB)
    provenance-linux-amd64-v1.8.2.zip(29.51 MB)
    sha256sum.txt(201 bytes)
  • v1.8.1(Apr 14, 2022)

    v1.8.1 - 2022-04-13

    Summary

    Provenance 1.8.1 includes upgrades to the underlying Cosmos SDK and adds initial support for ADR-038.

    This release addresses issues related to IAVL concurrency and Tendermint performance that resulted in occasional panics when under high-load conditions such as replay from quicksync. In particular, nodes which experienced issues with "Value missing for hash" and similar panic conditions should work properly with this release. The underlying Cosmos SDK 0.45.3 release that has been incorporated includes a number of improvements around IAVL locking and performance characteristics.

    ** NOTE: Although Provenance supports multiple database backends, some issues have been reported when using the goleveldb backend. If experiencing issues, using the cleveldb backend is preferred **

    Improvements

    • Update Provenance to use Cosmos SDK 0.45.3 Release #781
    • Plugin architecture for ADR-038 + FileStreamingService plugin #10639
    • Fix for sporadic error "panic: Value missing for hash" #611
    Source code(tar.gz)
    Source code(zip)
    plan-v1.8.1.json(416 bytes)
    protos-v1.8.1.zip(194.59 KB)
    provenance-darwin-amd64-v1.8.1.zip(27.37 MB)
    provenance-linux-amd64-v1.8.1.zip(29.50 MB)
    sha256sum.txt(201 bytes)
  • v1.8.0(Mar 18, 2022)

    v1.8.0 - 2022-03-17

    Summary

    Provenance 1.8.0 is focused on improving the fee structures for transactions on the blockchain. While the Cosmos SDK has traditionally offered a generic fee structure focused on gas/resource utilization, the Provenance blockchain has found that certain transactions have additional long term costs and value beyond simple resources charges. This is the reason we are adding the new MsgFee module which allows governance based control of additional fee charges on certain message types.

    NOTE: The second major change in the 1.8.0 release is part of the migration process which removes many orphaned state objects that were left in 1.7.x chains. This cleanup process will require a significant amount of time to perform during the green upgrade handler execution. The upgrade will print status messages showing the progress of this process.

    Features

    • Add check for authz grants when there are missing signatures in metadata transactions #516
    • Add support for publishing Java and Kotlin Protobuf compiled sources to Maven Central #562
    • Adds support for creating root name governance proposals from the cli #599
    • Adding of the msg based fee module #354
    • Upgrade provenance to 0.45 cosmos sdk release #607
    • Upgrade wasmd to v0.22.0 Note: this removes dependency on provenance-io's wasmd fork #479
    • Add support for Scope mutation via wasm Smart Contracts #531
    • Increase governance deposit amount and add create proposal msg fee #632
    • Allow attributes to be associated with scopes #631

    Improvements

    • Add bank and authz module query proto files required by grpcurl #482
    • Fix typeos in marker log statements #502
    • Set default coin type to network default #534
    • Add logger to upgrade handler #507
    • Allow markers to be created over existing accounts if they are not a marker and have a zero sequence #520
    • Removed extraneous Metadata index deletes/rewrites #543
    • Delete empty sessions when the last record is updated to a new session #480
    • Refactor the migration to be faster and have more log output PR 586
    • Capture all included protobufs into release zip file #556
    • Add Protobuf support with buf.build #614
    • Limit the maximum attribute value length to 1000 (down from 10,000 currently) in the green upgrade #616
    • Add additional fees for specified operations in the green upgrade #616
      • provenance.name.v1.MsgBindNameRequest 10 hash (10,000,000,000 nhash)
      • provenance.marker.v1.MsgAddMarkerRequest 100 hash (100,000,000,000 nhash)
      • provenance.attribute.v1.MsgAddAttributeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgWriteScopeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgP8eMemorializeContractRequest 10 hash (10,000,000,000 nhash)
    • Add integration tests for smart contracts #392
    • Use provwasm release artifact for smart contract tests #731

    Client Breaking

    • Enforce a maximum gas limit on individual transactions so that at least 20 can fit in any given block. #681 Previously transactions were only limited by their size in bytes as well as the overall gas limit on a given block.

      With this update transactions must be no more than 5% of the maximum amount of gas allowed per block when a gas limit per block is set (this restriction has no effect when a gas limit has not been set). The current limits on Provenance mainnet are 60,000,000 gas per block which will yield a maximum transaction size of 3,000,000 gas using this new AnteHandler restriction.

    Bug Fixes

    • When deleting a scope, require the same permissions as when updating it #473
    • Allow manager to adjust grants on finalized markers #545
    • Add migration to re-index the metadata indexes involving addresses #541
    • Add migration to delete empty sessions #480
    • Add Java distribution tag to workflow #624
    • Add msgfees module to added store upgrades #640
    • Use nhash for base denom in gov proposal upgrade #648
    • Bump cosmowasm from v1.0.0-beta5 to v1.0.0-beta6 #655
    • Fix maven publish release version number reference #650
    • Add iterator as feature for wasm #658
    • String "v" from Jar artifact version number #653
    • Fix wasm contract migration failure to find contract history #662
    Source code(tar.gz)
    Source code(zip)
    plan-v1.8.0.json(416 bytes)
    protos-v1.8.0.zip(194.59 KB)
    provenance-darwin-amd64-v1.8.0.zip(19.21 MB)
    provenance-linux-amd64-v1.8.0.zip(18.81 MB)
    sha256sum.txt(201 bytes)
  • v1.8.0-rc10(Mar 9, 2022)

    v1.8.0-rc10 - 2022-03-09

    Features

    • Add check for authz grants when there are missing signatures in metadata transactions #516
    • Add support for publishing Java and Kotlin Protobuf compiled sources to Maven Central #562
    • Adds support for creating root name governance proposals from the cli #599
    • Adding of the msg based fee module #354
    • Upgrade provenance to 0.45 cosmos sdk release #607
    • Upgrade wasmd to v0.22.0 Note: this removes dependency on provenance-io's wasmd fork #479
    • Add support for Scope mutation via wasm Smart Contracts #531
    • Increase governance deposit amount and add create proposal msg fee #632
    • Allow attributes to be associated with scopes #631

    Improvements

    • Add bank and authz module query proto files required by grpcurl #482
    • Fix typeos in marker log statements #502
    • Set default coin type to network default #534
    • Add logger to upgrade handler #507
    • Allow markers to be created over existing accounts if they are not a marker and have a zero sequence #520
    • Removed extraneous Metadata index deletes/rewrites #543
    • Delete empty sessions when the last record is updated to a new session #480
    • Refactor the migration to be faster and have more log output PR 586
    • Capture all included protobufs into release zip file #556
    • Add Protobuf support with buf.build #614
    • Limit the maximum attribute value length to 1000 (down from 10,000 currently) in the green upgrade #616
    • Add additional fees for specified operations in the green upgrade #616
      • provenance.name.v1.MsgBindNameRequest 10 hash (10,000,000,000 nhash)
      • provenance.marker.v1.MsgAddMarkerRequest 100 hash (100,000,000,000 nhash)
      • provenance.attribute.v1.MsgAddAttributeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgWriteScopeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgP8eMemorializeContractRequest 10 hash (10,000,000,000 nhash)
    • Add integration tests for smart contracts #392

    Client Breaking

    • Enforce a maximum gas limit on individual transactions so that at least 20 can fit in any given block. #681 Previously transactions were only limited by their size in bytes as well as the overall gas limit on a given block.

      With this update transactions must be no more than 5% of the maximum amount of gas allowed per block when a gas limit per block is set (this restriction has no effect when a gas limit has not been set). The current limits on Provenance mainnet are 60,000,000 gas per block which will yield a maximum transaction size of 3,000,000 gas using this new AnteHandler restriction.

    Bug Fixes

    • When deleting a scope, require the same permissions as when updating it #473
    • Allow manager to adjust grants on finalized markers #545
    • Add migration to re-index the metadata indexes involving addresses #541
    • Add migration to delete empty sessions #480
    • Add Java distribution tag to workflow #624
    • Add msgfees module to added store upgrades #640
    • Use nhash for base denom in gov proposal upgrade #648
    • Bump cosmowasm from v1.0.0-beta5 to v1.0.0-beta6 #655
    • Fix maven publish release version number reference #650
    • Add iterator as feature for wasm #658
    • String "v" from Jar artifact version number #653
    • Fix wasm contract migration failure to find contract history #662
    Source code(tar.gz)
    Source code(zip)
    plan-v1.8.0-rc10.json(436 bytes)
    protos-v1.8.0-rc10.zip(194.59 KB)
    provenance-darwin-amd64-v1.8.0-rc10.zip(19.20 MB)
    provenance-linux-amd64-v1.8.0-rc10.zip(18.80 MB)
    sha256sum.txt(211 bytes)
  • v1.8.0-rc9(Mar 4, 2022)

    v1.8.0-rc9 - 2022-03-04

    Features

    • Add check for authz grants when there are missing signatures in metadata transactions #516
    • Add support for publishing Java and Kotlin Protobuf compiled sources to Maven Central #562
    • Adds support for creating root name governance proposals from the cli #599
    • Adding of the msg based fee module #354
    • Upgrade provenance to 0.45 cosmos sdk release #607
    • Upgrade wasmd to v0.22.0 Note: this removes dependency on provenance-io's wasmd fork #479
    • Add support for Scope mutation via wasm Smart Contracts #531
    • Increase governance deposit amount and add create proposal msg fee #632
    • Allow attributes to be associated with scopes #631

    Improvements

    • Add bank and authz module query proto files required by grpcurl #482
    • Fix typeos in marker log statements #502
    • Set default coin type to network default #534
    • Add logger to upgrade handler #507
    • Allow markers to be created over existing accounts if they are not a marker and have a zero sequence #520
    • Removed extraneous Metadata index deletes/rewrites #543
    • Delete empty sessions when the last record is updated to a new session #480
    • Refactor the migration to be faster and have more log output PR 586
    • Capture all included protobufs into release zip file #556
    • Add Protobuf support with buf.build #614
    • Limit the maximum attribute value length to 1000 (down from 10,000 currently) in the green upgrade #616
    • Add additional fees for specified operations in the green upgrade #616
      • provenance.name.v1.MsgBindNameRequest 10 hash (10,000,000,000 nhash)
      • provenance.marker.v1.MsgAddMarkerRequest 100 hash (100,000,000,000 nhash)
      • provenance.attribute.v1.MsgAddAttributeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgWriteScopeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgP8eMemorializeContractRequest 10 hash (10,000,000,000 nhash)
    • Add integration tests for smart contracts #392

    Client Breaking

    • Enforce a maximum gas limit on individual transactions so that at least 20 can fit in any given block. #681 Previously transactions were only limited by their size in bytes as well as the overall gas limit on a given block.

      With this update transactions must be no more than 5% of the maximum amount of gas allowed per block when a gas limit per block is set (this restriction has no effect when a gas limit has not been set). The current limits on Provenance mainnet are 60,000,000 gas per block which will yield a maximum transaction size of 3,000,000 gas using this new AnteHandler restriction.

    Bug Fixes

    • When deleting a scope, require the same permissions as when updating it #473
    • Allow manager to adjust grants on finalized markers #545
    • Add migration to re-index the metadata indexes involving addresses #541
    • Add migration to delete empty sessions #480
    • Add Java distribution tag to workflow #624
    • Add msgfees module to added store upgrades #640
    • Use nhash for base denom in gov proposal upgrade #648
    • Bump cosmowasm from v1.0.0-beta5 to v1.0.0-beta6 #655
    • Fix maven publish release version number reference #650
    • Add iterator as feature for wasm #658
    • String "v" from Jar artifact version number #653
    • Fix wasm contract migration failure to find contract history #662
    Source code(tar.gz)
    Source code(zip)
    plan-v1.8.0-rc9.json(432 bytes)
    protos-v1.8.0-rc9.zip(194.59 KB)
    provenance-darwin-amd64-v1.8.0-rc9.zip(19.20 MB)
    provenance-linux-amd64-v1.8.0-rc9.zip(18.80 MB)
    sha256sum.txt(209 bytes)
  • v1.8.0-rc8(Feb 16, 2022)

    v1.8.0-rc8 - 2022-02-16

    Features

    • Add check for authz grants when there are missing signatures in metadata transactions #516
    • Add support for publishing Java and Kotlin Protobuf compiled sources to Maven Central #562
    • Adds support for creating root name governance proposals from the cli #599
    • Adding of the msg based fee module #354
    • Upgrade provenance to 0.45 cosmos sdk release #607
    • Upgrade wasmd to v0.22.0 Note: this removes dependency on provenance-io's wasmd fork #479
    • Add support for Scope mutation via wasm Smart Contracts #531
    • Increase governance deposit amount and add create proposal msg fee #632
    • Allow attributes to be associated with scopes #631

    Improvements

    • Add bank and authz module query proto files required by grpcurl #482
    • Fix typeos in marker log statements #502
    • Set default coin type to network default #534
    • Add logger to upgrade handler #507
    • Allow markers to be created over existing accounts if they are not a marker and have a zero sequence #520
    • Removed extraneous Metadata index deletes/rewrites #543
    • Delete empty sessions when the last record is updated to a new session #480
    • Refactor the migration to be faster and have more log output PR 586
    • Capture all included protobufs into release zip file #556
    • Add Protobuf support with buf.build #614
    • Limit the maximum attribute value length to 1000 (down from 10,000 currently) in the green upgrade #616
    • Add additional fees for specified operations in the green upgrade #616
      • provenance.name.v1.MsgBindNameRequest 10 hash (10,000,000,000 nhash)
      • provenance.marker.v1.MsgAddMarkerRequest 100 hash (100,000,000,000 nhash)
      • provenance.attribute.v1.MsgAddAttributeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgWriteScopeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgP8eMemorializeContractRequest 10 hash (10,000,000,000 nhash)

    Bug Fixes

    • When deleting a scope, require the same permissions as when updating it #473
    • Allow manager to adjust grants on finalized markers #545
    • Add migration to re-index the metadata indexes involving addresses #541
    • Add migration to delete empty sessions #480
    • Add Java distribution tag to workflow #624
    • Add msgfees module to added store upgrades #640
    • Use nhash for base denom in gov proposal upgrade #648
    • Bump cosmowasm from v1.0.0-beta5 to v1.0.0-beta6 #655
    • Fix maven publish release version number reference #650
    • Add iterator as feature for wasm #658
    • String "v" from Jar artifact version number #653
    • Fix wasm contract migration failure to find contract history #662
    Source code(tar.gz)
    Source code(zip)
    plan-v1.8.0-rc8.json(432 bytes)
    protos-v1.8.0-rc8.zip(194.59 KB)
    provenance-darwin-amd64-v1.8.0-rc8.zip(19.18 MB)
    provenance-linux-amd64-v1.8.0-rc8.zip(18.78 MB)
    sha256sum.txt(209 bytes)
  • v1.8.0-rc7(Feb 15, 2022)

    v1.8.0-rc7 - 2022-02-15

    Features

    • Add check for authz grants when there are missing signatures in metadata transactions #516
    • Add support for publishing Java and Kotlin Protobuf compiled sources to Maven Central #562
    • Adds support for creating root name governance proposals from the cli #599
    • Adding of the msg based fee module #354
    • Upgrade provenance to 0.45 cosmos sdk release #607
    • Upgrade wasmd to v0.22.0 Note: this removes dependency on provenance-io's wasmd fork #479
    • Add support for Scope mutation via wasm Smart Contracts #531
    • Increase governance deposit amount and add create proposal msg fee #632
    • Allow attributes to be associated with scopes #631

    Improvements

    • Add bank and authz module query proto files required by grpcurl #482
    • Fix typeos in marker log statements #502
    • Set default coin type to network default #534
    • Add logger to upgrade handler #507
    • Allow markers to be created over existing accounts if they are not a marker and have a zero sequence #520
    • Removed extraneous Metadata index deletes/rewrites #543
    • Delete empty sessions when the last record is updated to a new session #480
    • Refactor the migration to be faster and have more log output PR 586
    • Capture all included protobufs into release zip file #556
    • Add Protobuf support with buf.build #614
    • Limit the maximum attribute value length to 1000 (down from 10,000 currently) in the green upgrade #616
    • Add additional fees for specified operations in the green upgrade #616
      • provenance.name.v1.MsgBindNameRequest 10 hash (10,000,000,000 nhash)
      • provenance.marker.v1.MsgAddMarkerRequest 100 hash (100,000,000,000 nhash)
      • provenance.attribute.v1.MsgAddAttributeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgWriteScopeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgP8eMemorializeContractRequest 10 hash (10,000,000,000 nhash)

    Bug Fixes

    • When deleting a scope, require the same permissions as when updating it #473
    • Allow manager to adjust grants on finalized markers #545
    • Add migration to re-index the metadata indexes involving addresses #541
    • Add migration to delete empty sessions #480
    • Add Java distribution tag to workflow #624
    • Add msgfees module to added store upgrades #640
    • Use nhash for base denom in gov proposal upgrade #648
    • Bump cosmowasm from v1.0.0-beta5 to v1.0.0-beta6 #655
    • Fix maven publish release version number reference #650
    • Add iterator as feature for wasm #658
    • String "v" from Jar artifact version number #653
    Source code(tar.gz)
    Source code(zip)
    plan-v1.8.0-rc7.json(432 bytes)
    protos-v1.8.0-rc7.zip(194.59 KB)
    provenance-darwin-amd64-v1.8.0-rc7.zip(19.18 MB)
    provenance-linux-amd64-v1.8.0-rc7.zip(18.78 MB)
    sha256sum.txt(209 bytes)
  • v1.8.0-rc6(Feb 11, 2022)

    v1.8.0-rc6 - 2022-02-11

    Features

    • Add check for authz grants when there are missing signatures in metadata transactions #516
    • Add support for publishing Java and Kotlin Protobuf compiled sources to Maven Central #562
    • Adds support for creating root name governance proposals from the cli #599
    • Adding of the msg based fee module #354
    • Upgrade provenance to 0.45 cosmos sdk release #607
    • Upgrade wasmd to v0.22.0 Note: this removes dependency on provenance-io's wasmd fork #479
    • Add support for Scope mutation via wasm Smart Contracts #531
    • Increase governance deposit amount and add create proposal msg fee #632
    • Allow attributes to be associated with scopes #631

    Improvements

    • Add bank and authz module query proto files required by grpcurl #482
    • Fix typeos in marker log statements #502
    • Set default coin type to network default #534
    • Add logger to upgrade handler #507
    • Allow markers to be created over existing accounts if they are not a marker and have a zero sequence #520
    • Removed extraneous Metadata index deletes/rewrites #543
    • Delete empty sessions when the last record is updated to a new session #480
    • Refactor the migration to be faster and have more log output PR 586
    • Capture all included protobufs into release zip file #556
    • Add Protobuf support with buf.build #614
    • Limit the maximum attribute value length to 1000 (down from 10,000 currently) in the green upgrade #616
    • Add additional fees for specified operations in the green upgrade #616
      • provenance.name.v1.MsgBindNameRequest 10 hash (10,000,000,000 nhash)
      • provenance.marker.v1.MsgAddMarkerRequest 100 hash (100,000,000,000 nhash)
      • provenance.attribute.v1.MsgAddAttributeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgWriteScopeRequest 10 hash (10,000,000,000 nhash)
      • provenance.metadata.v1.MsgP8eMemorializeContractRequest 10 hash (10,000,000,000 nhash)

    Bug Fixes

    • When deleting a scope, require the same permissions as when updating it #473
    • Allow manager to adjust grants on finalized markers #545
    • Add migration to re-index the metadata indexes involving addresses #541
    • Add migration to delete empty sessions #480
    • Add Java distribution tag to workflow #624
    • Add msgfees module to added store upgrades #640
    • Use nhash for base denom in gov proposal upgrade #648
    • Bump cosmowasm from v1.0.0-beta5 to v1.0.0-beta6 #655
    • Fix maven publish release version number reference #650
    Source code(tar.gz)
    Source code(zip)
    plan-v1.8.0-rc6.json(432 bytes)
    protos-v1.8.0-rc6.zip(194.59 KB)
    provenance-darwin-amd64-v1.8.0-rc6.zip(19.18 MB)
    provenance-linux-amd64-v1.8.0-rc6.zip(18.78 MB)
    sha256sum.txt(209 bytes)
  • v1.8.0-rc5(Feb 11, 2022)

  • v1.7.6(Dec 15, 2021)

  • v1.7.4(Oct 12, 2021)

    v1.7.4 - 2021-10-12

    Improvements

    • Update github actions to always run required tests #508
    • Update Cosmos SDK to 0.44.2 PR 527

    NOTE: Cosmos SDK 0.44.2 includes an important security fix. Users of previous versions of 1.7.x should migrate to 1.7.4 immediately. No coordinated software upgrade is required, existing 1.7.x binaries can be stopped and replaced with this version.

    Source code(tar.gz)
    Source code(zip)
    plan-v1.7.4.json(416 bytes)
    protos-v1.7.4.zip(77.53 KB)
    provenance-darwin-amd64-v1.7.4.zip(18.84 MB)
    provenance-linux-amd64-v1.7.4.zip(18.44 MB)
    sha256sum.txt(201 bytes)
  • v1.7.3(Sep 30, 2021)

  • v1.7.1(Sep 20, 2021)

  • v1.7.0(Sep 3, 2021)

    v1.7.0 - 2021-09-03

    NOTE: This version of provenanced has been superseded by 1.7.1.

    Features

    • Marker governance proposal are supported in cli #367
    • Add ability to query metadata sessions by record #212
    • Add Name and Symbol Cosmos features to Marker Metadata #372
    • Add authz support to Marker module transfer MarkerTransferAuthorization #265
      • Add authz grant/revoke command to marker cli
      • Add documentation around how to grant/revoke authz #449
    • Add authz and feegrant modules PR 384
    • Add Marker governance proposal for setting denom metadata #369
    • Add config command to cli for client configuration #394
    • Add updated wasmd for Cosmos 0.43 #409
    • Add Rosetta support and automated testing #365
    • Update wasm parameters to only allow smart contracts to be uploaded with gov proposal #440
    • Update config command #403
      • Get and set any configuration field.
      • Get or set multiple configuration fields in a single invocation.
      • Easily identify fields with changed (non-default) values.
      • Pack the configs into a single json file with only changed (non-default) values.
      • Unpack the config back into the multiple config files (that also have documentation in them).

    Bug Fixes

    • Fix for creating non-coin type markers through governance addmarker proposals #431
    • Marker Withdraw Escrow Proposal type is properly registered #367
      • Target Address field spelling error corrected in Withdraw Escrow and Increase Supply Governance Proposals.
    • Fix DeleteScopeOwner endpoint to store the correct scope PR 377
    • Marker module import/export issues PR384
      • Add missing marker attributes to state export
      • Fix account numbering issues with marker accounts and auth module accounts during import
      • Export marker accounts as a base account entry and a separate marker module record
      • Add Marker module governance proposals, genesis, and marker operations to simulation testing #94
    • Fix an encoding issue with the --page-key CLI arguments used in paged queries #332
    • Fix handling of optional fields in Metadata Write messages #412
    • Fix cli marker new example is incorrect #415
    • Fix home directory setup for app export #457
    • Correct an error message that was providing an illegal amount of gas as an example #425

    API Breaking

    • Fix for missing validation for marker permissions according to marker type. Markers of type COIN can no longer have the Transfer permission assigned. Existing permission entries on Coin type markers of type Transfer are removed during migration #428

    Improvements

    • Updated to Cosmos SDK Release v0.44 to resolve security issues in v0.43 #463
      • Updated to Cosmos SDK Release v0.43 #154
    • Updated to go 1.17 #454
    • Updated wasmd for Cosmos SDK Release v0.43 #409
    • Updated to IBC-Go Module v1.0.1 PR 445
    • Updated log message for circulation adjustment #381
    • Updated third party proto files to pull from cosmos 0.43 #391
    • Removed legacy api endpoints #380
    • Removed v039 and v040 migrations #374
    • Dependency Version Updates
    • Updated provenanced init for better testnet support and defaults #403
    • Fixed some example address to use the appropriate prefix #453
    Source code(tar.gz)
    Source code(zip)
    plan-v1.7.0.json(416 bytes)
    protos-v1.7.0.zip(77.53 KB)
    provenance-darwin-amd64-v1.7.0.zip(18.73 MB)
    provenance-linux-amd64-v1.7.0.zip(18.33 MB)
    sha256sum.txt(201 bytes)
  • v1.6.0(Aug 24, 2021)

    v1.6.0 - 2021-08-23

    This release contains logic that updates the usdf.c marker to be restricted prior to the general support of this capability implemented in the upcoming 1.7.0 release.

    Bug Fixes

    • Fix for creating non-coin type markers through governance addmarker proposals #431
    • Upgrade handler migrates usdf.c to the right marker_type.
    Source code(tar.gz)
    Source code(zip)
    plan-v1.6.0.json(416 bytes)
    protos-v1.6.0.zip(83.15 KB)
    provenance-darwin-amd64-v1.6.0.zip(19.08 MB)
    provenance-linux-amd64-v1.6.0.zip(18.75 MB)
    sha256sum.txt(201 bytes)
  • v1.5.0(Jun 23, 2021)

    v1.5.0 - 2021-06-23

    Features

    • Update Cosmos SDK to 0.42.6 with Tendermint 0.34.11 #355
      • Refund gas support added to gas meter trace
      • ibc-transfer now contains an escrow-address command for querying current escrow balances
    • Add update and delete-distinct attributes to attribute module #314
    • Add support to metadata module for adding and removing contract specifications to scope specification #302
      • Added MsgAddContractSpecToScopeSpecRequestand MsgDeleteContractSpecFromScopeSpecRequest messages for adding/removing
      • Added cli commands for adding/removing
    • Add smart contract query support to the metadata module #65

    API Breaking

    • Redundant account parameter was removed from Attribute module SetAttribute API. PR 348

    Bug Fixes

    • Value owner changes are independent of scope owner signature requirements after transfer #347
    • Attribute module allows removal of orphan attributes, attributes against root names PR 348
    • marker cli query for marker does not cast marker argument to lower case #329

    Improvements

    • Bump wasmd to v0.17.0 #345
    • Attribute module simulation support #25
    • Add transfer cli command to marker module #264
    • Refactor name module to emit typed events from keeper #267
    Source code(tar.gz)
    Source code(zip)
    plan-v1.5.0.json(416 bytes)
    protos-v1.5.0.zip(83.15 KB)
    provenance-darwin-amd64-v1.5.0.zip(19.08 MB)
    provenance-linux-amd64-v1.5.0.zip(18.75 MB)
    sha256sum.txt(201 bytes)
  • v1.4.1(Jun 2, 2021)

    v1.4.1 - 2021-06-02

    • Updated github binary release workflow. No code changes from 1.4.0.

    v1.4.0 - 2021-06-02

    Features

    • ENV config support, SDK v0.42.5 update #320
    • Upgrade handler set version name to citrine #339

    Bug Fixes

    • P8EMemorializeContract: preserve some Scope fields if the scope already exists PR 336
    • Set default standard err/out for provenanced commands PR 337
    • Fix for invalid help text permissions list on marker access grant command PR 337
    • When writing a session, make sure the scope spec of the containing scope, contains the session's contract spec. #322

    Improvements

    • Informative error message for min-gas-prices invalid config panic on startup #333
    • Update marker event documentation to match typed event namespaces #304
    Source code(tar.gz)
    Source code(zip)
    plan-v1.4.1.json(416 bytes)
    protos-v1.4.1.zip(82.70 KB)
    provenance-darwin-amd64-v1.4.1.zip(18.98 MB)
    provenance-linux-amd64-v1.4.1.zip(18.65 MB)
    sha256sum.txt(201 bytes)
  • v1.4.0(Jun 2, 2021)

    Features

    • ENV config support, SDK v0.42.5 update #320
    • Upgrade handler set version name to citrine #339

    Bug Fixes

    • P8EMemorializeContract: preserve some Scope fields if the scope already exists PR 336
    • Set default standard err/out for provenanced commands PR 337
    • Fix for invalid help text permissions list on marker access grant command PR 337
    • When writing a session, make sure the scope spec of the containing scope, contains the session's contract spec. #322

    Improvements

    • Informative error message for min-gas-prices invalid config panic on startup #333
    • Update marker event documentation to match typed event namespaces #304
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(May 21, 2021)

    v1.3.1 - 2021-05-21

    v1.3.1 is a binary compatible release with v1.3.0. Users that require prometheus metrics may optionally use this version of the software.

    Bug Fixes

    • Remove broken gauge on attribute module. Fixes prometheus metrics #315
    • Correct logging levels for marker mint/burn requests #318
    • Fix the CLI metaaddress commands #321

    Improvements

    • Add Kotlin and Javascript examples for Metadata Addresses #301
    • Updated swagger docs PR 313
    • Fix swagger docs PR 317
    • Updated default min-gas-prices to reflect provenance network nhash economics #310
    • Improved marker error message when marker is not found #325
    Source code(tar.gz)
    Source code(zip)
    plan-v1.3.1.json(416 bytes)
    protos-v1.3.1.zip(82.70 KB)
    provenance-darwin-amd64-v1.3.1.zip(18.85 MB)
    provenance-linux-amd64-v1.3.1.zip(18.54 MB)
    sha256sum.txt(201 bytes)
  • v1.3.0(May 6, 2021)

    v1.3.0 - 2021-05-06

    Features

    • Add grpc messages and cli command to add/remove addresses from metadata scope data access #220
    • Add a context field to the Session #276
    • Add typed events and telemetry metrics to attribute module #86
    • Add rpc and cli support for adding/updating/removing owners on a Scope #283
    • Add transaction and query time measurements to marker module #284
    • Upgrade handler included that sets denom metadata for hash bond denom #294
    • Upgrade wasmd to v0.16.0 #291
    • Add params query endpoint to the marker module cli #271

    Improvements

    • Added linkify script for changelog issue links #107
    • Changed Metadata events to be typed events #88
    • Updated marker module spec documentation #93
    • Gas consumption telemetry and tracing #299

    Bug Fixes

    • More mapping fixes related to WriteP8EContractSpec and P8EMemorializeContract #275
    • Fix event manager scope in attribute, name, marker, and metadata modules to prevent event duplication #289
    • Proposed markers that are cancelled can be deleted without ADMIN role being assigned #280
    • Fix to ensure markers have no balances in Escrow prior to being deleted. #303

    State Machine Breaking

    • Add support for purging destroyed markers #282
    Source code(tar.gz)
    Source code(zip)
    plan-v1.3.0.json(215 bytes)
    protos-v1.3.0.zip(82.70 KB)
    provenance-linux-amd64-v1.3.0.zip(17.65 MB)
    sha256sum.txt(100 bytes)
  • v1.2.0(Apr 26, 2021)

    v1.2.0 - 2021-04-26

    Improvements

    • Add spec documentation for the metadata module #224

    Features

    • Add typed events and telemetry metrics to marker module #247

    Bug Fixes

    • Wired recovery flag into init command #254
    • Always anchor unrestricted denom validation expressions, Do not allow slashes in marker denom expressions #258
    • Mapping and validation fixes found while trying to use P8EMemorializeContract #256

    Client Breaking

    • Update marker transfer request signing behavior #246
    Source code(tar.gz)
    Source code(zip)
    plan-v1.2.0.json(215 bytes)
    protos-v1.2.0.zip(81.15 KB)
    provenance-linux-amd64-v1.2.0.zip(17.43 MB)
    sha256sum.txt(100 bytes)
Owner
Provenance Blockchain, Inc.
Provenance is an open distributed stakeholder blockchain ecosystem built by Figure.com that includes omnibus banks, marketplaces, investor passporting, and more
Provenance Blockchain, Inc.
Tarmac is a unique framework designed for the next generation of distributed systems

Framework for building distributed services with Web Assembly

Benjamin Cane 192 Jun 26, 2022
A Distributed Content Licensing Framework (DCLF) using Hyperledger Fabric permissioned blockchain.

A Distributed Content Licensing Framework (DCLF) using Hyperledger Fabric permissioned blockchain.

Tal Derei 3 May 3, 2022
Skynet is a framework for distributed services in Go.

##Introduction Skynet is a communication protocol for building massively distributed apps in Go. It is not constrained to Go, so it will lend itself n

null 2k Jun 12, 2022
This library contains utilities that are useful for building distributed services.

Grafana Dskit This library contains utilities that are useful for building distributed services. Current state This library is still in development. D

Grafana Labs 217 Jul 1, 2022
Distributed lock manager. Warning: very hard to use it properly. Not because it's broken, but because distributed systems are hard. If in doubt, do not use this.

What Dlock is a distributed lock manager [1]. It is designed after flock utility but for multiple machines. When client disconnects, all his locks are

Sergey Shepelev 25 Dec 24, 2019
Distributed reliable key-value store for the most critical data of a distributed system

etcd Note: The main branch may be in an unstable or even broken state during development. For stable versions, see releases. etcd is a distributed rel

etcd-io 40.4k Jun 30, 2022
AppsFlyer 483 Jun 23, 2022
A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services

sleuth sleuth is a Go library that provides master-less peer-to-peer autodiscovery and RPC between HTTP services that reside on the same network. It w

null 352 Jun 21, 2022
An experimental library for building clustered services in Go

Donut is a library for building clustered applications in Go. Example package main import ( "context" "log" "os" // Wait for etcd client v3.4, t

David Forsythe 97 Jul 13, 2021
distributed data sync with operational transformation/transforms

DOT The DOT project is a blend of operational transformation, CmRDT, persistent/immutable datastructures and reactive stream processing. This is an im

DOT & Chain 69 May 11, 2022
High performance, distributed and low latency publish-subscribe platform.

Emitter: Distributed Publish-Subscribe Platform Emitter is a distributed, scalable and fault-tolerant publish-subscribe platform built with MQTT proto

emitter 3.3k Jun 26, 2022
Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.

Gleam Gleam is a high performance and efficient distributed execution system, and also simple, generic, flexible and easy to customize. Gleam is built

Chris Lu 3.1k Jun 28, 2022
Go Micro is a framework for distributed systems development

Go Micro Go Micro is a framework for distributed systems development. Overview Go Micro provides the core requirements for distributed systems develop

Asim Aslam 18.6k Jun 25, 2022
Simplified distributed locking implementation using Redis

redislock Simplified distributed locking implementation using Redis. For more information, please see examples. Examples import ( "fmt" "time"

Black Square Media 729 Jun 30, 2022
A distributed lock service in Go using etcd

locker A distributed lock service client for etcd. What? Why? A distributed lock service is somewhat self-explanatory. Locking (mutexes) as a service

James Gregory 48 Dec 2, 2021
Go Open Source, Distributed, Simple and efficient Search Engine

Go Open Source, Distributed, Simple and efficient full text search engine.

ego 6.1k Jun 25, 2022
Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.

Dapr is a portable, serverless, event-driven runtime that makes it easy for developers to build resilient, stateless and stateful microservices that run on the cloud and edge and embraces the diversity of languages and developer frameworks.

Dapr 18.4k Jun 28, 2022
Lockgate is a cross-platform locking library for Go with distributed locks using Kubernetes or lockgate HTTP lock server as well as the OS file locks support.

Lockgate Lockgate is a locking library for Go. Classical interface: 2 types of locks: shared and exclusive; 2 modes of locking: blocking and non-block

werf 230 Jun 16, 2022