Coder Social home page Coder Social logo

oasisprotocol / oasis-rosetta-gateway Goto Github PK

View Code? Open in Web Editor NEW
21.0 19.0 9.0 1.11 MB

The official Rosetta server implementation for the Oasis Network.

License: Apache License 2.0

Makefile 13.91% Go 75.18% Shell 6.69% Dockerfile 3.09% Python 0.31% Jinja 0.83%
blockchain crypto gateway network oasis official rosetta rosetta-api

oasis-rosetta-gateway's Introduction

Oasis Rosetta Gateway

CI test status CI lint status Docker status Release status

This repository implements the Rosetta server for the Oasis Network. See the Rosetta API docs for information on how to use the API.

Oasis-specific Rosetta API information is given in the Oasis-specific Information subsection below.

Building and Testing

To build the server:

make

To run tests:

make test

To clean-up:

make clean

make test will automatically download the Oasis Node and Rosetta CLI, set up a test Oasis network, make some sample transactions, then run the gateway and validate it using rosetta-cli.

Contributing

Versioning

See our Versioning document.

Release Process

See our Release Process document.

Running the Gateway

The gateway connects to an Oasis Node, so make sure you have a running node first. For more details, see the Run a Non-validator Node doc of the Run Node Oasis Docs.

Set the OASIS_NODE_GRPC_ADDR environment variable to the node's gRPC socket address (e.g. unix:/path/to/node/internal.sock).

Optionally, set the OASIS_ROSETTA_GATEWAY_PORT environment variable to the port that you want the gateway to listen on (default is 8080).

Start the gateway simply by running the executable oasis-rosetta-gateway.

Offline Mode

The gateway supports an "offline" mode, which enables only a subset of the Construction API and nothing else, but doesn't require a connection to an Oasis Node.

To enable it, set the environment variable OASIS_ROSETTA_GATEWAY_OFFLINE_MODE to a non-empty value. You must also set the environment variable OASIS_ROSETTA_GATEWAY_OFFLINE_MODE_CHAIN_ID to the genesis document's hash of the network that you wish to construct transactions for. In online mode, the genesis document's hash is fetched from the Oasis Node, but in offline mode there is no connection to an Oasis Node, so it has to be specified manually.

The only supported endpoints in offline mode are:

/construction/{combine,derive,hash,parse,payloads,preprocess}

Oasis-specific Information

This section describes how Oasis fits into the Rosetta APIs.

Network Identifier

Rosetta API documentation

For Amber (at time of writing):

{
    "blockchain": "Oasis",
    "network": "c014bda208f670539e8f03016b0dcfe16e0c2ad9a060419d1aad580f5c7ff447"
    /* no sub_network_identifier */
}

In general (e.g., for other testnets), the .network string is the lowercase hex encoded SHA-512/256 hash of the CBOR encoded genesis document.

Account Identifier

Rosetta API documentation

General Account

For an account account_addr's (e.g. oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000) general account:

{
    "address": account_addr
    /* no sub_account */
    /* no metadata */
}

Escrow Account

For an account account_addr's (e.g. oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000) escrow account:

{
    "address": account_addr,
    "sub_account": {
        "address": "escrow"
        /* no metadata */
    }
    /* no metadata */
}

Common Pool

For the common pool:

{
    "address": "oasis1qrmufhkkyyf79s5za2r8yga9gnk4t446dcy3a5zm"
    /* no sub_account */
    /* no metadata */
}

Fee Accumulator

For the fee accumulator:

{
    "address": "oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5"
    /* no sub_account */
    /* no metadata */
}

Currency

Rosetta API documentation

ROSE

For ROSE:

{
    "symbol": "ROSE",
    "decimals": 9
    /* no metadata */
}

Transaction Intents

Rosetta API documentation on /construction/preprocess and /construction/payloads.

The first two operations in the listings are the gas fee payment. For zero-fee transactions, omit them and decrease the remaining operation identifier indices.

Staking Transfer

For transfer, amount_bu base units from signer_addr to to_addr with gas limit gas_limit and fee fee_bu base units:

[
    {
        "operation_identifier": {
            "index": 0
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": signer_addr
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": "-" + fee_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        },
        /* no coin_change */
        "metadata": {
            "fee_gas": gas_limit
        }
    },
    {
        "operation_identifier": {
            "index": 1
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": "oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5" /* fee accumulator */
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": fee_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    },
    {
        "operation_identifier": {
            "index": 2
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": signer_addr
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": "-" + amount_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    },
    {
        "operation_identifier": {
            "index": 3
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": to_addr
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": amount_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    }
]

Staking Burn

For burn, amount_bu base units from signer_addr with gas limit gas_limit and fee fee_bu base units:

[
    {
        "operation_identifier": {
            "index": 0
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": signer_addr
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": "-" + fee_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        },
        /* no coin_change */
        "metadata": {
            "fee_gas": gas_limit
        }
    },
    {
        "operation_identifier": {
            "index": 1
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": "oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5" /* fee accumulator */
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": fee_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    },
    {
        "operation_identifier": {
            "index": 2
            /* no network_index */
        },
        /* no related_operations */
        "type": "Burn",
        /* no status */
        "account": {
            "address": signer_addr
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": "-" + amount_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    }
]

Staking Add Escrow

For add escrow, amount_bu base units from signer_addr to escrow_addr with gas limit gas_limit and fee fee_bu base units:

[
    {
        "operation_identifier": {
            "index": 0
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": signer_addr
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": "-" + fee_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        },
        /* no coin_change */
        "metadata": {
            "fee_gas": gas_limit
        }
    },
    {
        "operation_identifier": {
            "index": 1
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": "oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5" /* fee accumulator */
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": fee_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    },
    {
        "operation_identifier": {
            "index": 2
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": signer_addr
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": "-" + amount_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    },
    {
        "operation_identifier": {
            "index": 3
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": escrow_addr,
            "sub_account": {
                "address": "escrow"
                /* no metadata */
            }
            /* no metadata */
        },
        "amount": {
            "value": amount_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    }
]

Staking Reclaim Escrow

For transfer, amount_sh shares to signer_addr from escrow_addr with gas limit gas_limit and fee fee_bu base units:

[
    {
        "operation_identifier": {
            "index": 0
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": signer_addr
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": "-" + fee_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        },
        /* no coin_change */
        "metadata": {
            "fee_gas": gas_limit
        }
    },
    {
        "operation_identifier": {
            "index": 1
            /* no network_index */
        },
        /* no related_operations */
        "type": "Transfer",
        /* no status */
        "account": {
            "address": "oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5" /* fee accumulator */
            /* no sub_account */
            /* no metadata */
        },
        "amount": {
            "value": fee_bu.toString(),
            "currency": {
                "symbol": "ROSE",
                "decimals": 9
                /* no metadata */
            }
            /* no metadata */
        }
        /* no coin_change */
        /* no metadata */
    },
    {
        "operation_identifier": {
            "index": 2
            /* no network_index */
        },
        /* no related_operations */
        "type": "ReclaimEscrow",
        /* no status */
        "account": {
            "address": signer_addr
            /* no sub_account */
            /* no metadata */
        },
        /* no amount */
        /* no coin_change */
        /* no metadata */
    },
    {
        "operation_identifier": {
            "index": 3
            /* no network_index */
        },
        /* no related_operations */
        "type": "ReclaimEscrow",
        /* no status */
        "account": {
            "address": escrow_addr,
            "sub_account": {
                "address": "escrow"
                /* no metadata */
            }
            /* no metadata */
        },
        /* no amount */
        /* no coin_change */
        "metadata": {
            "reclaim_escrow_shares": amount_sh.toString()
        }
    }
]

Block API

Rosetta API documentation

In a partial block identifier:

  • Set only the index field to the block height.

In a block response:

  • The other_transactions field is absent.

In a block:

  • Block identifier index fields contain the height of the block.
  • Block identifier hash fields are lowercase hex encoded.
  • The parent_block_identifier field contains the block identifier of the previous block, except when querying for first block.
  • The metadata field is absent.

In a transaction:

  • The transaction identifier hash field is lowercase hex encoded.
  • The operations field contains the transaction intent with some modifications.
  • The metadata field is absent.

In an operation as compared to the corresponding operation from the transaction's intent:

  • The related_operations field may be set.
  • The status field is set to OK for successful transactions and Failed for failed transactions.
  • The metadata field is absent.

oasis-rosetta-gateway's People

Contributors

abukosek avatar buberdds avatar colossus-digital avatar dependabot[bot] avatar kostko avatar peterjgilbert avatar pro-wh avatar ptrus avatar tjanez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oasis-rosetta-gateway's Issues

Expose commision schedule in account metadata

This would be useful so wallets using the Rosetta API could report an account's commission schedule (i.e. commission rates and rate bounds) and users could make an informed decision when delegating their tokens.

Update to latest Rosetta specification

The most recent specification has some useful updates that previously required fiddling with metadata. I guess we need to preserve backwards compatibility now and still keep the old approach for a while though.

support zero-fee transactions

zero-fee transactions don't emit transfer events for the fee. that means currently don't create operations for them when we handle a block. however, an operation is present in the intent format that we support. that zero-amount operation will never be found. we have to reconcile this in order to support zero-fee transactions.

it follows from this description of the discrepancy that we can either (1) create a zero-amount operation when there's no transfer event for the fee for a transaction (although, does rosetta even allow zero-amount operations?) or (2) increase the complexity of construction to handle the absent fee operation


Strange, they should be added by this loop that converts staking events to operations:
https://github.com/oasisprotocol/oasis-core-rosetta-gateway/blob/883ad286b485c2a308a23b8c1b76dd82497cc478/services/block.go#L120

Note that fee events are only emitted in case fees are non-zero:
https://github.com/oasisprotocol/oasis-core/blob/a5aba7cae7b5b380e8cb785689d63d2f15b2d548/go/consensus/tendermint/apps/staking/state/gas.go#L106-L115

Originally posted by @kostko in #25 (comment)

many transactions with empty operations are confusing

to someone exploring the API, having most transactions right now be unmodeled node registrations (or something) might seem like they aren't getting transaction info right.

some ideas to address this:

  1. document it
  2. add something to the transaction so people know it's intentionally blank. maybe some metadata item
  3. are we allowed to put the raw transaction in the metadata?

Periodically validate against latest Oasis Core

After we have #2 we should periodically (e.g., daily) validate if the gateway still works with the latest Oasis Core version(s) so we are immediately aware of breakages. This should include at least Oasis Core master and the latest stable release.

Use a single source for Oasis Core dependency version

Offline mode that only enables a subset of Construction API

All construction APIs now begin with a check of ValidateNetworkIdentifier. But according to rosetta doc, most of construction APIs should be working offline.

And we need them to work without oasisClient to integrate this project into bitpie wallet. Could you make this oasisClient in construction API service optional?

Add documentation

We should document things that are specific to our network, e.g., how to construct proper intents for different kinds of transactions.

Use Oasis Core 20.9

Since Oasis Core 20.9 has been released, the Rosetta gateway should be updated to be compatible.

This should now be able to use the named version tag v0.20.9.

Upgrade to rosetta-cli 0.4.0

This new version adds automated tests for the construction API, which we want, maybe.

There are some major backwards incompatibilities though.

Bump Oasis Core to 21.0

Now that Oasis Core 21.0 has been released, the Rosetta Gateway should be updated to use it.

Update module path

Once a new version of Oasis Core is released, update to the new module path.

panic: runtime error: invalid memory address or nil pointer dereference

Hello,

Our server keeps crashing immediately after launching it with the following error

oasis_1  | ts=2021-03-01T16:16:45.246179191Z level=info module=oasis-rosetta-gateway caller=main.go:157 msg="waiting for node socket to appear..." socket_path=/data/internal.sock
oasis_1  | ts=2021-03-01T16:16:46.246362407Z level=info module=oasis-rosetta-gateway caller=main.go:157 msg="waiting for node socket to appear..." socket_path=/data/internal.sock
oasis_1  | ts=2021-03-01T16:16:47.247397561Z level=debug module=oasis caller=oasis.go:134 msg="Establishing connection" grpc_addr=unix:/data/internal.sock
oasis_1  | panic: runtime error: invalid memory address or nil pointer dereference
oasis_1  | [signal SIGSEGV: segmentation violation code=0x1 addr=0x68 pc=0x1337bb2]
oasis_1  | 
oasis_1  | goroutine 158 [running]:
oasis_1  | github.com/tendermint/tendermint/node.(*Node).Switch(...)
oasis_1  | 	github.com/tendermint/[email protected]/node/node.go:1116
oasis_1  | github.com/oasisprotocol/oasis-core/go/consensus/tendermint/full.(*fullService).GetStatus(0xc000375520, 0x1f51280, 0xc01c141dd0, 0x19387a0, 0x1, 0x0)
oasis_1  | 	github.com/oasisprotocol/oasis-core/go/consensus/tendermint/full/full.go:809 +0x1d2
oasis_1  | github.com/oasisprotocol/oasis-core/go/control.(*nodeController).GetStatus(0xc00ffded20, 0x1f51280, 0xc01c141dd0, 0x1f63600, 0xc00ffded20, 0x0)
oasis_1  | 	github.com/oasisprotocol/oasis-core/go/control/control.go:85 +0x63
oasis_1  | github.com/oasisprotocol/oasis-core/go/control/api.handlerGetStatus.func1(0x1f51280, 0xc01c141dd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
oasis_1  | 	github.com/oasisprotocol/oasis-core/go/control/api/grpc.go:230 +0x6d
oasis_1  | github.com/oasisprotocol/oasis-core/go/common/grpc/auth.UnaryServerInterceptor.func1(0x1f51280, 0xc01c141dd0, 0x0, 0x0, 0xc00fe16b40, 0xc00fe16b60, 0x2ba0ca0, 0x1b0b1a0, 0x2ba0340, 0x1f51280)
oasis_1  | 	github.com/oasisprotocol/oasis-core/go/common/grpc/auth/auth.go:43 +0x20f
oasis_1  | github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1(0x1f51280, 0xc01c141dd0, 0x0, 0x0, 0x2ba0340, 0x1f51280, 0xc01c141dd0, 0x1f6c900)
oasis_1  | 	github.com/grpc-ecosystem/[email protected]/chain.go:25 +0x63
oasis_1  | github.com/oasisprotocol/oasis-core/go/common/grpc.serverUnaryErrorMapper(0x1f51280, 0xc01c141dd0, 0x0, 0x0, 0xc00fe16b40, 0xc00fe16b80, 0xc00fe16c20, 0xc01c141da0, 0x0, 0x0)
oasis_1  | 	github.com/oasisprotocol/oasis-core/go/common/grpc/errors.go:94 +0x55
oasis_1  | github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1(0x1f51280, 0xc01c141dd0, 0x0, 0x0, 0x1bcbdb8, 0xd, 0xc0002c6d50, 0x24)
oasis_1  | 	github.com/grpc-ecosystem/[email protected]/chain.go:25 +0x63
oasis_1  | github.com/grpc-ecosystem/go-grpc-middleware/tracing/opentracing.UnaryServerInterceptor.func1(0x1f51280, 0xc01c141d10, 0x0, 0x0, 0xc00fe16b40, 0xc00fe16ba0, 0x4c02c6, 0x603d136f, 0xee526f5, 0x23fe4dd20d06a7)
oasis_1  | 	github.com/grpc-ecosystem/[email protected]/tracing/opentracing/server_interceptors.go:34 +0x10b
oasis_1  | github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1(0x1f51280, 0xc01c141d10, 0x0, 0x0, 0xc0100942c8, 0x5, 0x203003, 0x0)
oasis_1  | 	github.com/grpc-ecosystem/[email protected]/chain.go:25 +0x63
oasis_1  | github.com/oasisprotocol/oasis-core/go/common/grpc.(*grpcLogAdapter).unaryLogger(0xc000fb3bf0, 0x1f51280, 0xc01c141d10, 0x0, 0x0, 0xc00fe16b40, 0xc00fe16bc0, 0x0, 0x0, 0x203007, ...)
oasis_1  | 	github.com/oasisprotocol/oasis-core/go/common/grpc/grpc.go:190 +0x16b
oasis_1  | github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1(0x1f51280, 0xc01c141d10, 0x0, 0x0, 0x30, 0x30, 0xc00d8abb28, 0x419b38)
oasis_1  | 	github.com/grpc-ecosystem/[email protected]/chain.go:25 +0x63
oasis_1  | github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1(0x1f51280, 0xc01c141d10, 0x0, 0x0, 0xc00fe16b40, 0xc00fe16b60, 0xc01c141d10, 0xc00d8abba0, 0x4cb406, 0x1a9b480)
oasis_1  | 	github.com/grpc-ecosystem/[email protected]/chain.go:34 +0xd7
oasis_1  | github.com/oasisprotocol/oasis-core/go/control/api.handlerGetStatus(0x1a82280, 0xc00ffded20, 0x1f51280, 0xc01c141d10, 0xc01c3a26c0, 0xc000fb3c80, 0x1f51280, 0xc01c141d10, 0x0, 0x0)
oasis_1  | 	github.com/oasisprotocol/oasis-core/go/control/api/grpc.go:232 +0x123
oasis_1  | google.golang.org/grpc.(*Server).processUnaryRPC(0xc0002ee1c0, 0x1f650a0, 0xc00d8a4300, 0xc001140200, 0xc00ffdedb0, 0x2a082a8, 0x0, 0x0, 0x0)
oasis_1  | 	google.golang.org/[email protected]/server.go:1194 +0x522
oasis_1  | google.golang.org/grpc.(*Server).handleStream(0xc0002ee1c0, 0x1f650a0, 0xc00d8a4300, 0xc001140200, 0x0)
oasis_1  | 	google.golang.org/[email protected]/server.go:1517 +0xd05
oasis_1  | google.golang.org/grpc.(*Server).serveStreams.func1.2(0xc01c13fcd0, 0xc0002ee1c0, 0x1f650a0, 0xc00d8a4300, 0xc001140200)
oasis_1  | 	google.golang.org/[email protected]/server.go:859 +0xa5
oasis_1  | created by google.golang.org/grpc.(*Server).serveStreams.func1
oasis_1  | 	google.golang.org/[email protected]/server.go:857 +0x1fd
oasis_1  | level=error module=grpc/client caller=grpc.go:242 ts=2021-03-01T16:16:47.289911088Z msg="request failed" method=/oasis-core.NodeController/GetStatus req_seq=1 rsp="unsupported value type" err="rpc error: code = Unavailable desc = transport is closing"
oasis_1  | ts=2021-03-01T16:16:47.289968336Z level=debug module=oasis caller=oasis.go:147 msg="Failed to get status from node" err="rpc error: code = Unavailable desc = transport is closing"
oasis_1  | ts=2021-03-01T16:16:47.290805284Z level=error module=oasis-rosetta-gateway caller=main.go:175 msg="failed to obtain chain ID from Oasis node" err="failed to get status from node: rpc error: code = Unavailable desc = transport is closing"
ubuntu_oasis_1 exited with code 1

Also, it appears from the blockchain explorer's past ~900 pages of transactions that that there is some issue causing most transactions to fail.

The issue appears to have started either late 2021-02-27 or early 201-02-28 UTC.

Please advise how to start our node and how to debug what is the input causing the panic ... invalid memory address or nil pointer dereference ... segmentation violation

make construction submit succeed if tx is already in mempool

maybe we should hook up "transaction already in mempool" to return success

Yeah this would probably be in line with Rosetta semantics (no error if transaction is added to mempool). We could add a proper error type for this on the Oasis Core side so that you wouldn't need to match strings (we support transporting actual error codes across RPC boundaries).

Originally posted by @kostko in #36 (comment)

Initial implementation

Based on the Rosetta 1.3.1 specs and reference implementation (https://github.com/coinbase/rosetta-sdk-go), see the examples/server folder. It should use Oasis Core 20.5.1 for now (tests should use the pre-built oasis-node release artifact, similar to what we do in oasis-runtime).

If this uncovers any areas of Oasis Core Client API that need to be changed, issues should be filed in Oasis Core.

Compatibility with Oasis Core 21.2

use oasis_core 21.2 version
oasis-core-rosetta-gateway 1.1.1
rpc:block
block:3610570

post body
{
"network_identifier": {
"blockchain": "Oasis",
"network": "53852332637bacb61b91b6411ab4095168ba02a50be4c3f82448438826f23898"
},
"block_identifier": {
"index": 3610570
}
}

Returned result
{
"code": 14,
"message": "unable to get transactions",
"retriable": true
}

Nil pointer dereference in GetStatus

The GetStatus method implementation checks if the upstream service returned an error. It seems that the check is inverted so it only tries to access the response when an error occurred (in which case the response is nil).

should construction be less flaky?

if you run rosetta-cli check:construction indefinitely, you get a failure like this:

[STATS] Transactions Confirmed: 127 (Created: 137, In Progress: 10, Stale: 0, Failed: 0) Addresses Created: 72
Check failed: Transaction Conflict. Please retry: unable to add block to storage e75e4f272b4cd8df8a2b897e011e4e67fdeac22177c63b8bbf7fdc9f70850ae1:302: unable to sync to 302

how bad is that?

cross reference #26 (comment)

Make "Validating Rosetta gateway implementation" tests less flaky

Currently, running "Validating Rosetta gateway implementation" tests (either locally or through GitHub Actions) very frequently results in the rpc error: code = Canceled desc = context canceled error.

For example:

ts=2021-09-27T12:41:00.255662062Z level=debug module=services/construction caller=construction.go:371 msg="ConstructionParse OK" response="{\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}},\"metadata\":{\"fee_gas\":10000}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":2},\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-32198922323\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":3},\"related_operations\":[{\"index\":2}],\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qrjkku80vh3tdfpp9mj3wvx3e9x3dnwk7gxgfym0\"},\"amount\":{\"value\":\"32198922323\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}],\"signers\":[\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"],\"metadata\":{\"nonce\":6}}"
ts=2021-09-27T12:41:00.256513953Z level=debug module=services/construction caller=construction.go:187 msg="ConstructionHash OK" response="{\"transaction_identifier\":{\"hash\":\"eb70739e8260e136603448fc3de7759eb857b051d4995a8cb2c777e009f9f05b\"}}"
Transaction Created: eb70739e8260e136603448fc3de7759eb857b051d4995a8cb2c777e009f9f05b
  oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 -- 32.198922323 ROSE --> oasis1qrjkku80vh3tdfpp9mj3wvx3e9x3dnwk7gxgfym0
level=error module=grpc/client caller=grpc.go:244 ts=2021-09-27T12:41:00.257654623Z msg="request failed" method=/oasis-core.Consensus/GetTransactionsWithResults req_seq=343 rsp="unsupported value type" err="rpc error: code = Canceled desc = context canceled"
ts=2021-09-27T12:41:00.25772028Z level=error module=services/block caller=block.go:67 msg="Block: unable to get transactions" height=52 err="rpc error: code = Canceled desc = context canceled"
[STATS] Transactions Confirmed: 0 (Created: 0, In Progress: 1, Stale: 0, Failed: 0) Addresses Created: 1
Check failed: head block not found: unable to get head block identifier: unable to get current block identifier: unable to broadcast pending transactions: unable to enqueue transaction for broadcast
Full output for failed "Validating Rosetta gateway implementation" tests.
### Validating Rosetta gateway implementation...
ts=2021-09-27T12:40:30.187111322Z level=debug module=services/network caller=network.go:51 msg="NetworkList OK" response="{\"network_identifiers\":[{\"blockchain\":\"Oasis\",\"network\":\"16d38cb68a64346f557aa94a03ac70d59ac7bf84c5bba33e8244db04ac0d743b\"}]}"
network identifiers [{"blockchain":"Oasis","network":"16d38cb68a64346f557aa94a03ac70d59ac7bf84c5bba33e8244db04ac0d743b"}]
badger 2021/09/27 14:40:30 INFO: All 0 tables opened in 0s
badger 2021/09/27 14:40:30 DEBUG: Storing value log head: {Fid:0 Len:42 Offset:575}
badger 2021/09/27 14:40:30 INFO: Got compaction priority: {level:0 score:1.73 dropPrefixes:[]}
badger 2021/09/27 14:40:30 INFO: Running for level: 0
badger 2021/09/27 14:40:30 DEBUG: LOG Compact. Added 3 keys. Skipped 0 keys. Iteration took: 54.945ยตs
badger 2021/09/27 14:40:30 DEBUG: Discard stats: map[]
badger 2021/09/27 14:40:30 INFO: LOG Compact 0->1, del 1 tables, add 1 tables, took 182.776ยตs
badger 2021/09/27 14:40:30 INFO: Compaction for level: 0 DONE
badger 2021/09/27 14:40:30 INFO: Force compaction on level 0 done
loaded configuration file: rosetta-cli-config.json
2021/09/27 14:40:30 {
 "network": {
  "blockchain": "Oasis",
  "network": "16d38cb68a64346f557aa94a03ac70d59ac7bf84c5bba33e8244db04ac0d743b"
 },
 "online_url": "http://localhost:8080",
 "data_directory": "/tmp/rosetta-cli-oasistests",
 "http_timeout": 10,
 "block_concurrency": 8,
 "transaction_concurrency": 16,
 "tip_delay": 300,
 "construction": {
  "offline_url": "http://localhost:8080",
  "currency": {
   "symbol": "ROSE",
   "decimals": 9
  },
  "minimum_balance": "0",
  "maximum_fee": "0",
  "curve_type": "edwards25519",
  "accounting_model": "account",
  "scenario": [
   {
    "operation_identifier": {
     "index": 0
    },
    "type": "Transfer",
    "status": "",
    "account": {
     "address": "{{ SENDER }}"
    },
    "amount": {
     "value": "-100",
     "currency": {
      "symbol": "ROSE",
      "decimals": 9
     }
    }
   },
   {
    "operation_identifier": {
     "index": 1
    },
    "type": "Transfer",
    "status": "",
    "account": {
     "address": "oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5"
    },
    "amount": {
     "value": "100",
     "currency": {
      "symbol": "ROSE",
      "decimals": 9
     }
    }
   },
   {
    "operation_identifier": {
     "index": 2
    },
    "type": "Transfer",
    "status": "",
    "account": {
     "address": "{{ SENDER }}"
    },
    "amount": {
     "value": "{{ SENDER_VALUE }}",
     "currency": {
      "symbol": "ROSE",
      "decimals": 9
     }
    }
   },
   {
    "operation_identifier": {
     "index": 3
    },
    "type": "Transfer",
    "status": "",
    "account": {
     "address": "{{ RECIPIENT }}"
    },
    "amount": {
     "value": "{{ RECIPIENT_VALUE }}",
     "currency": {
      "symbol": "ROSE",
      "decimals": 9
     }
    }
   }
  ],
  "confirmation_depth": 10,
  "stale_depth": 30,
  "broadcast_limit": 3,
  "ignore_broadcast_failures": false,
  "change_scenario": null,
  "clear_broadcasts": false,
  "broadcast_behind_tip": false,
  "block_broadcast_limit": 5,
  "rebroadcast_all": false,
  "new_account_probability": 0.5,
  "max_addresses": 200
 },
 "data": {
  "active_reconciliation_concurrency": 16,
  "inactive_reconciliation_concurrency": 4,
  "inactive_reconciliation_frequency": 250,
  "log_blocks": false,
  "log_transactions": false,
  "log_balance_changes": false,
  "log_reconciliations": false,
  "ignore_reconciliation_error": false,
  "exempt_accounts": "",
  "bootstrap_balances": "",
  "historical_balance_disabled": false,
  "interesting_accounts": "",
  "reconciliation_disabled": false,
  "inactive_discrepency_search_disabled": false,
  "balance_tracking_disabled": false
 }
}
ts=2021-09-27T12:40:30.208297578Z level=debug module=services/network caller=network.go:51 msg="NetworkList OK" response="{\"network_identifiers\":[{\"blockchain\":\"Oasis\",\"network\":\"16d38cb68a64346f557aa94a03ac70d59ac7bf84c5bba33e8244db04ac0d743b\"}]}"
ts=2021-09-27T12:40:30.209720788Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":22,\"hash\":\"982ed24a058ce42271a2f12455aabb304b5df2b21fdc8a266c70a086205d0b33\"},\"current_block_timestamp\":1632746428000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
ts=2021-09-27T12:40:30.211271868Z level=debug module=services/network caller=network.go:51 msg="NetworkList OK" response="{\"network_identifiers\":[{\"blockchain\":\"Oasis\",\"network\":\"16d38cb68a64346f557aa94a03ac70d59ac7bf84c5bba33e8244db04ac0d743b\"}]}"
ts=2021-09-27T12:40:30.212193161Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":22,\"hash\":\"982ed24a058ce42271a2f12455aabb304b5df2b21fdc8a266c70a086205d0b33\"},\"current_block_timestamp\":1632746428000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
Initialized reconciler with 0 previously seen accounts
ts=2021-09-27T12:40:30.21487816Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":22,\"hash\":\"982ed24a058ce42271a2f12455aabb304b5df2b21fdc8a266c70a086205d0b33\"},\"current_block_timestamp\":1632746428000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
ts=2021-09-27T12:40:30.21578941Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":22,\"hash\":\"982ed24a058ce42271a2f12455aabb304b5df2b21fdc8a266c70a086205d0b33\"},\"current_block_timestamp\":1632746428000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
2021/09/27 14:40:30 Syncing 1-22
ts=2021-09-27T12:40:30.224070489Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":3,\"hash\":\"74d1e0b41d0a93bf6d53b8b013f0750c3273d4cecf0b9b3553bb47b2ac2348b8\"},\"parent_block_identifier\":{\"index\":2,\"hash\":\"674176e5f5e7b2bdacdb33919d468f75a5a25b7544c6b86c119bace04fd13c4b\"},\"timestamp\":1632746409000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"4cef341643022d56635bfd97698da89790034ffff67f9dbb09332307de5219e4\"},\"operations\":[]}],\"metadata\":{\"epoch\":1}}}"
ts=2021-09-27T12:40:30.224726249Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":5,\"hash\":\"4c887d4035c4bf0c5d5433b3a004d16f30afe580d4dbd941dfa261b6871fce2f\"},\"parent_block_identifier\":{\"index\":4,\"hash\":\"f3ab84a27bdc5a786cc84879fb2ff8b23c6793a3c8976faea1c91e520c8972b0\"},\"timestamp\":1632746411000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"dd9915bbff1f5565d526e8f99b6b95a321b5561eca12f871f383315e84aab4ed\"},\"operations\":[]},{\"transaction_identifier\":{\"hash\":\"4c887d4035c4bf0c5d5433b3a004d16f30afe580d4dbd941dfa261b6871fce2f\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"-1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqh6w6gv88hqm7g77kwe5x5w6e8zaaq56uex4gz4\"},\"amount\":{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":1}}}"
ts=2021-09-27T12:40:30.224969095Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":8,\"hash\":\"c4a3929d4a693d872c6d8827a154593f335f5d86defedf4212cac722edd82b6a\"},\"parent_block_identifier\":{\"index\":7,\"hash\":\"2f4f723510f40639a81934d6bfa225b2c0a95061c609e2d66777fc6c55337e15\"},\"timestamp\":1632746414000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"93f5d495e301518240e45684d4c3bb107342347f05b3fd8f19a357657ed74de1\"},\"operations\":[]}],\"metadata\":{\"epoch\":2}}}"
ts=2021-09-27T12:40:30.224990811Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"parent_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"timestamp\":1632746407000,\"transactions\":[],\"metadata\":{\"epoch\":0}}}"
ts=2021-09-27T12:40:30.225099126Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":7,\"hash\":\"2f4f723510f40639a81934d6bfa225b2c0a95061c609e2d66777fc6c55337e15\"},\"parent_block_identifier\":{\"index\":6,\"hash\":\"e267482a2b52a8e44fdc460202ffb5299b12332c1c80e306b35a82fe6b9cbabc\"},\"timestamp\":1632746413000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"9630f1bae5d1b3d1ec35464fed0c303fff2aae26a5bbc9fb74311429a6ba534f\"},\"operations\":[]},{\"transaction_identifier\":{\"hash\":\"0533d364f1f1808645aad7ad8ccbaa0fc878f6f92073940766c45fa973f56bda\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-1000\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge\"},\"amount\":{\"value\":\"1000\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":2}}}"
ts=2021-09-27T12:40:30.225152385Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":2,\"hash\":\"674176e5f5e7b2bdacdb33919d468f75a5a25b7544c6b86c119bace04fd13c4b\"},\"parent_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"timestamp\":1632746408000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"ca2bfa96f4c49bc0cdddb2330bf565a9f30a00f1b1e0221a13470eb592f8928a\"},\"operations\":[]}],\"metadata\":{\"epoch\":0}}}"
ts=2021-09-27T12:40:30.225207595Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":4,\"hash\":\"f3ab84a27bdc5a786cc84879fb2ff8b23c6793a3c8976faea1c91e520c8972b0\"},\"parent_block_identifier\":{\"index\":3,\"hash\":\"74d1e0b41d0a93bf6d53b8b013f0750c3273d4cecf0b9b3553bb47b2ac2348b8\"},\"timestamp\":1632746410000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"3a7936570507b2041fe6112a4b132c108bac918cafee27175adb8c9ea4bf007f\"},\"operations\":[]},{\"transaction_identifier\":{\"hash\":\"c1c90273db685238a209b77a0894be5f0d861115b0348c08b9017df1b53a5231\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":2},\"related_operations\":[{\"index\":1}],\"type\":\"Burn\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-42\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":1}}}"
ts=2021-09-27T12:40:30.225674119Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":6,\"hash\":\"e267482a2b52a8e44fdc460202ffb5299b12332c1c80e306b35a82fe6b9cbabc\"},\"parent_block_identifier\":{\"index\":5,\"hash\":\"4c887d4035c4bf0c5d5433b3a004d16f30afe580d4dbd941dfa261b6871fce2f\"},\"timestamp\":1632746412000,\"transactions\":[],\"metadata\":{\"epoch\":2}}}"
ts=2021-09-27T12:40:30.227932905Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":9,\"hash\":\"16099947f57ed72fdaf00913a40fb4cdcd2ff1d9a3b81f2a6d20f78e53c3c49f\"},\"parent_block_identifier\":{\"index\":8,\"hash\":\"c4a3929d4a693d872c6d8827a154593f335f5d86defedf4212cac722edd82b6a\"},\"timestamp\":1632746415000,\"transactions\":[],\"metadata\":{\"epoch\":3}}}"
ts=2021-09-27T12:40:30.228630594Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":10,\"hash\":\"20dae02be33ff955690ec56d8e04c0e7b3cf7193475d951a342eaf695bed705d\"},\"parent_block_identifier\":{\"index\":9,\"hash\":\"16099947f57ed72fdaf00913a40fb4cdcd2ff1d9a3b81f2a6d20f78e53c3c49f\"},\"timestamp\":1632746416000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"6fe673c7e0a3a5240c3faf35b3cbde7976fc663d899de69abf39977723e5f1e7\"},\"operations\":[]},{\"transaction_identifier\":{\"hash\":\"8ef88f226c704c4f6379acb8792cf54b4c5048b562452f1513ee8c3583c030fe\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-123\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge\"},\"amount\":{\"value\":\"123\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":3}}}"
ts=2021-09-27T12:40:30.22875991Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":11,\"hash\":\"8264e54073dec2b32c41e56fddbda5622140081d32544ffd3cdd1ce62216c784\"},\"parent_block_identifier\":{\"index\":10,\"hash\":\"20dae02be33ff955690ec56d8e04c0e7b3cf7193475d951a342eaf695bed705d\"},\"timestamp\":1632746417000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"f9c6f6e061fdea7c22e53b27ee5e2a3a308227ec52f52b6587e9a0c5b61518c5\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-456\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge\"},\"amount\":{\"value\":\"456\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":3}}}"
ts=2021-09-27T12:40:30.229454856Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":15,\"hash\":\"bbec45ef3762682d04020113bdeea442fa8a39bc8cc756a4050723066499f0b7\"},\"parent_block_identifier\":{\"index\":14,\"hash\":\"cf7ce7402a8df6cdcd6e293068111b3558107ca9642e3760e8c73c223d20081c\"},\"timestamp\":1632746421000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"bbec45ef3762682d04020113bdeea442fa8a39bc8cc756a4050723066499f0b7\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge\",\"sub_account\":{\"address\":\"escrow\"}},\"amount\":{\"value\":\"-100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":4}}}"
ts=2021-09-27T12:40:30.229486326Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":14,\"hash\":\"cf7ce7402a8df6cdcd6e293068111b3558107ca9642e3760e8c73c223d20081c\"},\"parent_block_identifier\":{\"index\":13,\"hash\":\"017d09ac4286b454cd4305d35f030fb7d92195986b103811647bc85bf751c61c\"},\"timestamp\":1632746420000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"dc9850a14bd0e1c0d19d32395713f18bae88c540e22fda3969ea549435da30af\"},\"operations\":[]},{\"transaction_identifier\":{\"hash\":\"cf7ce7402a8df6cdcd6e293068111b3558107ca9642e3760e8c73c223d20081c\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"-1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqh6w6gv88hqm7g77kwe5x5w6e8zaaq56uex4gz4\"},\"amount\":{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":3}}}"
ts=2021-09-27T12:40:30.229532993Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":13,\"hash\":\"017d09ac4286b454cd4305d35f030fb7d92195986b103811647bc85bf751c61c\"},\"parent_block_identifier\":{\"index\":12,\"hash\":\"c86264b1c32d4992d295266211c630ff89e4094eee890daa9a9ed6afb889ef9e\"},\"timestamp\":1632746419000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"36dca0918baca2250f709961d60f56acf1dd1bb4e78958542a66084a887d97aa\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]},{\"transaction_identifier\":{\"hash\":\"017d09ac4286b454cd4305d35f030fb7d92195986b103811647bc85bf751c61c\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"-1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqh6w6gv88hqm7g77kwe5x5w6e8zaaq56uex4gz4\"},\"amount\":{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":3}}}"
ts=2021-09-27T12:40:30.229493313Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":12,\"hash\":\"c86264b1c32d4992d295266211c630ff89e4094eee890daa9a9ed6afb889ef9e\"},\"parent_block_identifier\":{\"index\":11,\"hash\":\"8264e54073dec2b32c41e56fddbda5622140081d32544ffd3cdd1ce62216c784\"},\"timestamp\":1632746418000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"c6e4ab1bf692c5e3207052107aed981aa442b466c79a8667e81092bd46600682\"},\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":2},\"related_operations\":[{\"index\":1}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":3},\"related_operations\":[{\"index\":2}],\"type\":\"Transfer\",\"status\":\"OK\",\"account\":{\"address\":\"oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge\",\"sub_account\":{\"address\":\"escrow\"}},\"amount\":{\"value\":\"100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}]}],\"metadata\":{\"epoch\":3}}}"
ts=2021-09-27T12:40:30.232034521Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":16,\"hash\":\"40a17aab02b62300ea73ec68019ba3958d9b8fb55b04cbe3f0bfa80d59b538cb\"},\"parent_block_identifier\":{\"index\":15,\"hash\":\"bbec45ef3762682d04020113bdeea442fa8a39bc8cc756a4050723066499f0b7\"},\"timestamp\":1632746422000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"bcd0b79477f090e2635b2ad5ffdbad4f73dcef547132bfa115b4e7456da1edd3\"},\"operations\":[]},{\"transaction_identifier\":{\"hash\":\"d5f0adc8617f259bf5e0e963ba76a7e8a56cee6fcd92c657baeb28eb6e3ab54d\"},\"operations\":[]}],\"metadata\":{\"epoch\":4}}}"
ts=2021-09-27T12:40:30.232648103Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":17,\"hash\":\"85ed634125f5afe3a9f19b9cd36ef4cf0c4cc0698003f155aa019476d54cfb24\"},\"parent_block_identifier\":{\"index\":16,\"hash\":\"40a17aab02b62300ea73ec68019ba3958d9b8fb55b04cbe3f0bfa80d59b538cb\"},\"timestamp\":1632746423000,\"transactions\":[],\"metadata\":{\"epoch\":5}}}"
ts=2021-09-27T12:40:30.233296742Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":21,\"hash\":\"920983531b905a02eb055456e5230a3775721d88852b5669cef00ba9fce2e53a\"},\"parent_block_identifier\":{\"index\":20,\"hash\":\"72e941112ae8e0117bd716643c85a175f3ddd14080e8de1b1abdab7950f4e3e1\"},\"timestamp\":1632746427000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:30.233746276Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":22,\"hash\":\"982ed24a058ce42271a2f12455aabb304b5df2b21fdc8a266c70a086205d0b33\"},\"parent_block_identifier\":{\"index\":21,\"hash\":\"920983531b905a02eb055456e5230a3775721d88852b5669cef00ba9fce2e53a\"},\"timestamp\":1632746428000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:30.233808422Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":19,\"hash\":\"39b1b5ca53683c0744b41d5f51e0e6a297df6819efac5af821384563cb1c68fc\"},\"parent_block_identifier\":{\"index\":18,\"hash\":\"5f2f087b33e5122c0186a1fa2c9a4e4e89a6060a33c7f392786bf33d443c27bb\"},\"timestamp\":1632746425000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:30.233863163Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":18,\"hash\":\"5f2f087b33e5122c0186a1fa2c9a4e4e89a6060a33c7f392786bf33d443c27bb\"},\"parent_block_identifier\":{\"index\":17,\"hash\":\"85ed634125f5afe3a9f19b9cd36ef4cf0c4cc0698003f155aa019476d54cfb24\"},\"timestamp\":1632746424000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"8c68737e41032011385960731ab02ea0651f42a85289aef349186987c94e733a\"},\"operations\":[]},{\"transaction_identifier\":{\"hash\":\"211044cc74db2a303700ae3a4e85ab9c155b3682412e19f1d2c14f7cfaf9216e\"},\"operations\":[]}],\"metadata\":{\"epoch\":5}}}"
ts=2021-09-27T12:40:30.233866214Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":20,\"hash\":\"72e941112ae8e0117bd716643c85a175f3ddd14080e8de1b1abdab7950f4e3e1\"},\"parent_block_identifier\":{\"index\":19,\"hash\":\"39b1b5ca53683c0744b41d5f51e0e6a297df6819efac5af821384563cb1c68fc\"},\"timestamp\":1632746426000,\"transactions\":[{\"transaction_identifier\":{\"hash\":\"12e6787de0191a7a4477fa48680a92f6abbfdd442153f5f60dc8a6436fb3189a\"},\"operations\":[]}],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:30.241075629Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":3,\"hash\":\"74d1e0b41d0a93bf6d53b8b013f0750c3273d4cecf0b9b3553bb47b2ac2348b8\"},\"balances\":[{\"value\":\"0\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5 sub_account=null
ts=2021-09-27T12:40:30.243126879Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":3,\"hash\":\"74d1e0b41d0a93bf6d53b8b013f0750c3273d4cecf0b9b3553bb47b2ac2348b8\"},\"balances\":[{\"value\":\"100000000000\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 sub_account=null
ts=2021-09-27T12:40:30.245693435Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":4,\"hash\":\"f3ab84a27bdc5a786cc84879fb2ff8b23c6793a3c8976faea1c91e520c8972b0\"},\"balances\":[{\"value\":\"99999999957\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":1}}" account_id=oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 sub_account=null
ts=2021-09-27T12:40:30.245778367Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":4,\"hash\":\"f3ab84a27bdc5a786cc84879fb2ff8b23c6793a3c8976faea1c91e520c8972b0\"},\"balances\":[{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5 sub_account=null
ts=2021-09-27T12:40:30.245777073Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":4,\"hash\":\"f3ab84a27bdc5a786cc84879fb2ff8b23c6793a3c8976faea1c91e520c8972b0\"},\"balances\":[{\"value\":\"0\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqh6w6gv88hqm7g77kwe5x5w6e8zaaq56uex4gz4 sub_account=null
ts=2021-09-27T12:40:30.247688422Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":5,\"hash\":\"4c887d4035c4bf0c5d5433b3a004d16f30afe580d4dbd941dfa261b6871fce2f\"},\"balances\":[{\"value\":\"0\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5 sub_account=null
ts=2021-09-27T12:40:30.247702144Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":5,\"hash\":\"4c887d4035c4bf0c5d5433b3a004d16f30afe580d4dbd941dfa261b6871fce2f\"},\"balances\":[{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqh6w6gv88hqm7g77kwe5x5w6e8zaaq56uex4gz4 sub_account=null
ts=2021-09-27T12:40:30.248481438Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":6,\"hash\":\"e267482a2b52a8e44fdc460202ffb5299b12332c1c80e306b35a82fe6b9cbabc\"},\"balances\":[{\"value\":\"0\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge sub_account=null
ts=2021-09-27T12:40:30.249996735Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":7,\"hash\":\"2f4f723510f40639a81934d6bfa225b2c0a95061c609e2d66777fc6c55337e15\"},\"balances\":[{\"value\":\"1000\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge sub_account=null
ts=2021-09-27T12:40:30.250238632Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":7,\"hash\":\"2f4f723510f40639a81934d6bfa225b2c0a95061c609e2d66777fc6c55337e15\"},\"balances\":[{\"value\":\"99999998957\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":2}}" account_id=oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 sub_account=null
ts=2021-09-27T12:40:30.252081399Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":10,\"hash\":\"20dae02be33ff955690ec56d8e04c0e7b3cf7193475d951a342eaf695bed705d\"},\"balances\":[{\"value\":\"99999998834\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":3}}" account_id=oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 sub_account=null
ts=2021-09-27T12:40:30.252166786Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":11,\"hash\":\"8264e54073dec2b32c41e56fddbda5622140081d32544ffd3cdd1ce62216c784\"},\"balances\":[{\"value\":\"99999998378\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":4}}" account_id=oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 sub_account=null
ts=2021-09-27T12:40:30.252168818Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":11,\"hash\":\"8264e54073dec2b32c41e56fddbda5622140081d32544ffd3cdd1ce62216c784\"},\"balances\":[{\"value\":\"1579\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge sub_account=null
ts=2021-09-27T12:40:30.252206131Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":10,\"hash\":\"20dae02be33ff955690ec56d8e04c0e7b3cf7193475d951a342eaf695bed705d\"},\"balances\":[{\"value\":\"1123\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge sub_account=null
ts=2021-09-27T12:40:30.252845874Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":11,\"hash\":\"8264e54073dec2b32c41e56fddbda5622140081d32544ffd3cdd1ce62216c784\"},\"balances\":[{\"value\":\"0\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"active_balance\":\"0\",\"active_shares\":\"0\",\"debonding_balance\":\"0\",\"debonding_delegations\":{},\"debonding_shares\":\"0\",\"delegations\":{},\"nonce\":0}}" account_id=oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge sub_account="unsupported value type"
ts=2021-09-27T12:40:30.259662106Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":12,\"hash\":\"c86264b1c32d4992d295266211c630ff89e4094eee890daa9a9ed6afb889ef9e\"},\"balances\":[{\"value\":\"99999998277\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":5}}" account_id=oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 sub_account=null
ts=2021-09-27T12:40:30.25976301Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":22,\"hash\":\"982ed24a058ce42271a2f12455aabb304b5df2b21fdc8a266c70a086205d0b33\"},\"current_block_timestamp\":1632746428000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
ts=2021-09-27T12:40:30.260890294Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":12,\"hash\":\"c86264b1c32d4992d295266211c630ff89e4094eee890daa9a9ed6afb889ef9e\"},\"balances\":[{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5 sub_account=null
ts=2021-09-27T12:40:30.264401713Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":14,\"hash\":\"cf7ce7402a8df6cdcd6e293068111b3558107ca9642e3760e8c73c223d20081c\"},\"balances\":[{\"value\":\"3\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqh6w6gv88hqm7g77kwe5x5w6e8zaaq56uex4gz4 sub_account=null
ts=2021-09-27T12:40:30.265432631Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":13,\"hash\":\"017d09ac4286b454cd4305d35f030fb7d92195986b103811647bc85bf751c61c\"},\"balances\":[{\"value\":\"2\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqh6w6gv88hqm7g77kwe5x5w6e8zaaq56uex4gz4 sub_account=null
ts=2021-09-27T12:40:30.265556443Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":15,\"hash\":\"bbec45ef3762682d04020113bdeea442fa8a39bc8cc756a4050723066499f0b7\"},\"balances\":[{\"value\":\"99999998376\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":6}}" account_id=oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 sub_account=null
ts=2021-09-27T12:40:30.265623108Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":13,\"hash\":\"017d09ac4286b454cd4305d35f030fb7d92195986b103811647bc85bf751c61c\"},\"balances\":[{\"value\":\"1\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5 sub_account=null
ts=2021-09-27T12:40:30.266772942Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":13,\"hash\":\"017d09ac4286b454cd4305d35f030fb7d92195986b103811647bc85bf751c61c\"},\"balances\":[{\"value\":\"99999998276\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":6}}" account_id=oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 sub_account=null
ts=2021-09-27T12:40:30.26677294Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":15,\"hash\":\"bbec45ef3762682d04020113bdeea442fa8a39bc8cc756a4050723066499f0b7\"},\"balances\":[{\"value\":\"0\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"active_balance\":\"0\",\"active_shares\":\"0\",\"debonding_balance\":\"0\",\"debonding_delegations\":{},\"debonding_shares\":\"0\",\"delegations\":{},\"nonce\":0}}" account_id=oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge sub_account="unsupported value type"
ts=2021-09-27T12:40:30.268641088Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":14,\"hash\":\"cf7ce7402a8df6cdcd6e293068111b3558107ca9642e3760e8c73c223d20081c\"},\"balances\":[{\"value\":\"0\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"nonce\":0}}" account_id=oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5 sub_account=null
ts=2021-09-27T12:40:30.268641109Z level=debug module=services/account caller=account.go:188 msg="AccountBalance OK" response="{\"block_identifier\":{\"index\":12,\"hash\":\"c86264b1c32d4992d295266211c630ff89e4094eee890daa9a9ed6afb889ef9e\"},\"balances\":[{\"value\":\"100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}],\"metadata\":{\"active_balance\":\"100\",\"active_shares\":\"100\",\"debonding_balance\":\"0\",\"debonding_delegations\":{},\"debonding_shares\":\"0\",\"delegations\":{},\"nonce\":0}}" account_id=oasis1qpkant39yhx59sagnzpc8v0sg8aerwa3jyqde3ge sub_account="unsupported value type"
ts=2021-09-27T12:40:35.261601146Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":27,\"hash\":\"953f1d7a5bd44c58bab4f9aa94255b7f8c2ccae8b6989a9199317bf8617df7e1\"},\"current_block_timestamp\":1632746433000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
2021/09/27 14:40:35 Syncing 23-27
ts=2021-09-27T12:40:35.263520785Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":25,\"hash\":\"751bdf0025fea8bb439aeb0bff6081e9f35b8a6817514fb0d89752f0c8f8a309\"},\"parent_block_identifier\":{\"index\":24,\"hash\":\"1a893d88ab117e4c15cbf58093304e58210504215d66aaff9925382a6d76aedf\"},\"timestamp\":1632746431000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:35.263984274Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":27,\"hash\":\"953f1d7a5bd44c58bab4f9aa94255b7f8c2ccae8b6989a9199317bf8617df7e1\"},\"parent_block_identifier\":{\"index\":26,\"hash\":\"bac7e7ad963aec2e1d839b33281bae735f451696963f6f9f16ec1c542a9f5e15\"},\"timestamp\":1632746433000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:35.264044837Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":24,\"hash\":\"1a893d88ab117e4c15cbf58093304e58210504215d66aaff9925382a6d76aedf\"},\"parent_block_identifier\":{\"index\":23,\"hash\":\"364c00d604c2c0d38d601e28cb9e5af2065426b3294687bfda2a3134e12164b2\"},\"timestamp\":1632746430000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:35.264057192Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":26,\"hash\":\"bac7e7ad963aec2e1d839b33281bae735f451696963f6f9f16ec1c542a9f5e15\"},\"parent_block_identifier\":{\"index\":25,\"hash\":\"751bdf0025fea8bb439aeb0bff6081e9f35b8a6817514fb0d89752f0c8f8a309\"},\"timestamp\":1632746432000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:35.264143234Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":23,\"hash\":\"364c00d604c2c0d38d601e28cb9e5af2065426b3294687bfda2a3134e12164b2\"},\"parent_block_identifier\":{\"index\":22,\"hash\":\"982ed24a058ce42271a2f12455aabb304b5df2b21fdc8a266c70a086205d0b33\"},\"timestamp\":1632746429000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:35.265636952Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":27,\"hash\":\"953f1d7a5bd44c58bab4f9aa94255b7f8c2ccae8b6989a9199317bf8617df7e1\"},\"current_block_timestamp\":1632746433000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
[STATS] Blocks: 27 (Orphaned: 0) Transactions: 23 Operations: 23 Reconciliations: 8 (Inactive: 0)
ts=2021-09-27T12:40:40.267258827Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":32,\"hash\":\"dbb160db0755a9ca828e8b17253349ae200ce994c4e80196b4fbe80561e47604\"},\"current_block_timestamp\":1632746438000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
2021/09/27 14:40:40 Syncing 28-32
ts=2021-09-27T12:40:40.269558872Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":28,\"hash\":\"fd44042e300af7bad08a94f884b454f45efa94345435723de8687299b95564e2\"},\"parent_block_identifier\":{\"index\":27,\"hash\":\"953f1d7a5bd44c58bab4f9aa94255b7f8c2ccae8b6989a9199317bf8617df7e1\"},\"timestamp\":1632746434000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:40.269561053Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":29,\"hash\":\"35a0d1ed9e5758c6bf0507fbe7b6bbd19c7e83fc308d362fbeac53bbdd8d611e\"},\"parent_block_identifier\":{\"index\":28,\"hash\":\"fd44042e300af7bad08a94f884b454f45efa94345435723de8687299b95564e2\"},\"timestamp\":1632746435000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:40.270097522Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":32,\"hash\":\"dbb160db0755a9ca828e8b17253349ae200ce994c4e80196b4fbe80561e47604\"},\"parent_block_identifier\":{\"index\":31,\"hash\":\"e14f4882144cd677f0cc10ece298e27ab6f439233feecfe1bfd69321ba34b574\"},\"timestamp\":1632746438000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:40.27011801Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":31,\"hash\":\"e14f4882144cd677f0cc10ece298e27ab6f439233feecfe1bfd69321ba34b574\"},\"parent_block_identifier\":{\"index\":30,\"hash\":\"69be8aa07e273c403581bf46eb3767bed4219f7330a7ece6c4886286854d4a3f\"},\"timestamp\":1632746437000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:40.27017239Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":30,\"hash\":\"69be8aa07e273c403581bf46eb3767bed4219f7330a7ece6c4886286854d4a3f\"},\"parent_block_identifier\":{\"index\":29,\"hash\":\"35a0d1ed9e5758c6bf0507fbe7b6bbd19c7e83fc308d362fbeac53bbdd8d611e\"},\"timestamp\":1632746436000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:40.271602709Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":32,\"hash\":\"dbb160db0755a9ca828e8b17253349ae200ce994c4e80196b4fbe80561e47604\"},\"current_block_timestamp\":1632746438000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[]}"
ts=2021-09-27T12:40:45.276725859Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":37,\"hash\":\"722cf2d7b45f51e5d3121094cf5999cac8eb3177ddd9f50685aec54f9258a984\"},\"current_block_timestamp\":1632746443000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
2021/09/27 14:40:45 Syncing 33-37
ts=2021-09-27T12:40:45.288893371Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":34,\"hash\":\"0ce66b78a5b28d313f9acdd854c6e6f490173386d7bb82f4074b2bb799742405\"},\"parent_block_identifier\":{\"index\":33,\"hash\":\"b20e1ac8bbaa3e96dc3d6a46a24b277bf27068d459433272765ed7fb5fb4ba38\"},\"timestamp\":1632746440000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:45.288898899Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":33,\"hash\":\"b20e1ac8bbaa3e96dc3d6a46a24b277bf27068d459433272765ed7fb5fb4ba38\"},\"parent_block_identifier\":{\"index\":32,\"hash\":\"dbb160db0755a9ca828e8b17253349ae200ce994c4e80196b4fbe80561e47604\"},\"timestamp\":1632746439000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:45.28988074Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":37,\"hash\":\"722cf2d7b45f51e5d3121094cf5999cac8eb3177ddd9f50685aec54f9258a984\"},\"parent_block_identifier\":{\"index\":36,\"hash\":\"8e42cc0ce1a7046b04bc15a9cdf0257d927cb7288b34b1532e4d6ad02ee1d6df\"},\"timestamp\":1632746443000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:45.291051593Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":36,\"hash\":\"8e42cc0ce1a7046b04bc15a9cdf0257d927cb7288b34b1532e4d6ad02ee1d6df\"},\"parent_block_identifier\":{\"index\":35,\"hash\":\"26759cf8854c8c24dd7f6184beb24e3ff78c3d9fb2e721849f5cb398b046581f\"},\"timestamp\":1632746442000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:45.292476988Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":35,\"hash\":\"26759cf8854c8c24dd7f6184beb24e3ff78c3d9fb2e721849f5cb398b046581f\"},\"parent_block_identifier\":{\"index\":34,\"hash\":\"0ce66b78a5b28d313f9acdd854c6e6f490173386d7bb82f4074b2bb799742405\"},\"timestamp\":1632746441000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:45.302111037Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":37,\"hash\":\"722cf2d7b45f51e5d3121094cf5999cac8eb3177ddd9f50685aec54f9258a984\"},\"current_block_timestamp\":1632746443000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
[STATS] Blocks: 37 (Orphaned: 0) Transactions: 23 Operations: 23 Reconciliations: 8 (Inactive: 0)
ts=2021-09-27T12:40:50.306769211Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":42,\"hash\":\"990c61bd2ba1011305062ecfac7499b71ca9c948a2c58ab9b3acf94ac5113485\"},\"current_block_timestamp\":1632746448000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
2021/09/27 14:40:50 Syncing 38-42
ts=2021-09-27T12:40:50.316526404Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":40,\"hash\":\"938657c14513cc3e4b3b7dc400b538440eb19984727be07ff893b94e6ef83d64\"},\"parent_block_identifier\":{\"index\":39,\"hash\":\"bff215bd4b1d2391634900061be4463f06da7b86cba8f1d11400941e186ff0f1\"},\"timestamp\":1632746446000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:50.316706144Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":39,\"hash\":\"bff215bd4b1d2391634900061be4463f06da7b86cba8f1d11400941e186ff0f1\"},\"parent_block_identifier\":{\"index\":38,\"hash\":\"997296980d32b1a062bda96635a945b6b6f89f02a71e40366a88143b0a8e83af\"},\"timestamp\":1632746445000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:50.31753332Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":38,\"hash\":\"997296980d32b1a062bda96635a945b6b6f89f02a71e40366a88143b0a8e83af\"},\"parent_block_identifier\":{\"index\":37,\"hash\":\"722cf2d7b45f51e5d3121094cf5999cac8eb3177ddd9f50685aec54f9258a984\"},\"timestamp\":1632746444000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:50.317828981Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":42,\"hash\":\"990c61bd2ba1011305062ecfac7499b71ca9c948a2c58ab9b3acf94ac5113485\"},\"parent_block_identifier\":{\"index\":41,\"hash\":\"5db3887098757a4df7b1105f62585e7a6f5fa50ee425ae492fa3fa5c573bde7c\"},\"timestamp\":1632746448000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:50.319131343Z level=debug module=services/block caller=block.go:128 msg="Block OK" response="{\"block\":{\"block_identifier\":{\"index\":41,\"hash\":\"5db3887098757a4df7b1105f62585e7a6f5fa50ee425ae492fa3fa5c573bde7c\"},\"parent_block_identifier\":{\"index\":40,\"hash\":\"938657c14513cc3e4b3b7dc400b538440eb19984727be07ff893b94e6ef83d64\"},\"timestamp\":1632746447000,\"transactions\":[],\"metadata\":{\"epoch\":6}}}"
ts=2021-09-27T12:40:50.326717376Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":42,\"hash\":\"990c61bd2ba1011305062ecfac7499b71ca9c948a2c58ab9b3acf94ac5113485\"},\"current_block_timestamp\":1632746448000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
2021/09/27 14:40:50 Finished syncing 1-42
[STATS] Blocks: 42 (Orphaned: 0) Transactions: 23 Operations: 23 Reconciliations: 8 (Inactive: 0)
Check succeeded
loaded configuration file: rosetta-cli-config.json
2021/09/27 14:41:00 {
 "network": {
  "blockchain": "Oasis",
  "network": "16d38cb68a64346f557aa94a03ac70d59ac7bf84c5bba33e8244db04ac0d743b"
 },
 "online_url": "http://localhost:8080",
 "data_directory": "/tmp/rosetta-cli-oasistests",
 "http_timeout": 10,
 "block_concurrency": 8,
 "transaction_concurrency": 16,
 "tip_delay": 300,
 "construction": {
  "offline_url": "http://localhost:8080",
  "currency": {
   "symbol": "ROSE",
   "decimals": 9
  },
  "minimum_balance": "0",
  "maximum_fee": "0",
  "curve_type": "edwards25519",
  "accounting_model": "account",
  "scenario": [
   {
    "operation_identifier": {
     "index": 0
    },
    "type": "Transfer",
    "status": "",
    "account": {
     "address": "{{ SENDER }}"
    },
    "amount": {
     "value": "-100",
     "currency": {
      "symbol": "ROSE",
      "decimals": 9
     }
    }
   },
   {
    "operation_identifier": {
     "index": 1
    },
    "type": "Transfer",
    "status": "",
    "account": {
     "address": "oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5"
    },
    "amount": {
     "value": "100",
     "currency": {
      "symbol": "ROSE",
      "decimals": 9
     }
    }
   },
   {
    "operation_identifier": {
     "index": 2
    },
    "type": "Transfer",
    "status": "",
    "account": {
     "address": "{{ SENDER }}"
    },
    "amount": {
     "value": "{{ SENDER_VALUE }}",
     "currency": {
      "symbol": "ROSE",
      "decimals": 9
     }
    }
   },
   {
    "operation_identifier": {
     "index": 3
    },
    "type": "Transfer",
    "status": "",
    "account": {
     "address": "{{ RECIPIENT }}"
    },
    "amount": {
     "value": "{{ RECIPIENT_VALUE }}",
     "currency": {
      "symbol": "ROSE",
      "decimals": 9
     }
    }
   }
  ],
  "confirmation_depth": 10,
  "stale_depth": 30,
  "broadcast_limit": 3,
  "ignore_broadcast_failures": false,
  "change_scenario": null,
  "clear_broadcasts": false,
  "broadcast_behind_tip": false,
  "block_broadcast_limit": 5,
  "rebroadcast_all": false,
  "new_account_probability": 0.5,
  "max_addresses": 200
 },
 "data": {
  "active_reconciliation_concurrency": 16,
  "inactive_reconciliation_concurrency": 4,
  "inactive_reconciliation_frequency": 250,
  "log_blocks": false,
  "log_transactions": false,
  "log_balance_changes": false,
  "log_reconciliations": false,
  "ignore_reconciliation_error": false,
  "exempt_accounts": "",
  "bootstrap_balances": "",
  "historical_balance_disabled": false,
  "interesting_accounts": "",
  "reconciliation_disabled": false,
  "inactive_discrepency_search_disabled": false,
  "balance_tracking_disabled": false
 }
}
ts=2021-09-27T12:41:00.239672778Z level=debug module=services/network caller=network.go:51 msg="NetworkList OK" response="{\"network_identifiers\":[{\"blockchain\":\"Oasis\",\"network\":\"16d38cb68a64346f557aa94a03ac70d59ac7bf84c5bba33e8244db04ac0d743b\"}]}"
ts=2021-09-27T12:41:00.241299359Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":52,\"hash\":\"f488519fd96e62486cf49f5f1026b5232da1135dd5b87956074310efe8df6c1a\"},\"current_block_timestamp\":1632746458000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
ts=2021-09-27T12:41:00.243206653Z level=debug module=services/network caller=network.go:51 msg="NetworkList OK" response="{\"network_identifiers\":[{\"blockchain\":\"Oasis\",\"network\":\"16d38cb68a64346f557aa94a03ac70d59ac7bf84c5bba33e8244db04ac0d743b\"}]}"
ts=2021-09-27T12:41:00.244483594Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":52,\"hash\":\"f488519fd96e62486cf49f5f1026b5232da1135dd5b87956074310efe8df6c1a\"},\"current_block_timestamp\":1632746458000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
2021/09/27 14:41:00 construction tester initialized with 1 addresses
[STATS] Transactions Confirmed: 0 (Created: 0, In Progress: 0, Stale: 0, Failed: 0) Addresses Created: 0
ts=2021-09-27T12:41:00.248511098Z level=debug module=services/construction caller=construction.go:217 msg="ConstructionDerive OK" response="{\"address\":\"oasis1qrjkku80vh3tdfpp9mj3wvx3e9x3dnwk7gxgfym0\"}"
ts=2021-09-27T12:41:00.248970417Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":52,\"hash\":\"f488519fd96e62486cf49f5f1026b5232da1135dd5b87956074310efe8df6c1a\"},\"current_block_timestamp\":1632746458000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
ts=2021-09-27T12:41:00.249422572Z level=debug module=services/construction caller=construction.go:409 msg="ConstructionPreprocess OK" response="{\"options\":{\"id\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"}}"
ts=2021-09-27T12:41:00.25179304Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":52,\"hash\":\"f488519fd96e62486cf49f5f1026b5232da1135dd5b87956074310efe8df6c1a\"},\"current_block_timestamp\":1632746458000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
ts=2021-09-27T12:41:00.252478018Z level=debug module=services/construction caller=construction.go:109 msg="ConstructionMetadata OK" response="{\"metadata\":{\"nonce\":6}}"
ts=2021-09-27T12:41:00.253065356Z level=debug module=services/construction caller=construction.go:493 msg="ConstructionPayloads OK" response="{\"unsigned_transaction\":\"omJ0eKRjZmVlomNnYXMZJxBmYW1vdW50QWRkYm9keaJidG9VAOVrcO9l4rakIS7lFzDRyU0WzdbyZmFtb3VudEUHfzSQU2Vub25jZQZmbWV0aG9kcHN0YWtpbmcuVHJhbnNmZXJmc2lnbmVyeC5vYXNpczFxenpkNmtobTNhY3Fza3B4bGs5dmQ1MDQ0Y21tY2NlNzh5NWw2MDAw\",\"payloads\":[{\"hex_bytes\":\"bdb46fa656510d8bd39d9e268b7c3d5f5620d95f94d4ba36ded3ac340a4a17f4\",\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\",\"signature_type\":\"ed25519\"}]}"
ts=2021-09-27T12:41:00.253476565Z level=debug module=services/network caller=network.go:112 msg="NetworkStatus OK" response="{\"current_block_identifier\":{\"index\":52,\"hash\":\"f488519fd96e62486cf49f5f1026b5232da1135dd5b87956074310efe8df6c1a\"},\"current_block_timestamp\":1632746458000,\"genesis_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"oldest_block_identifier\":{\"index\":1,\"hash\":\"ee396af19a8ce9b73275036f990b0f041ed26c264fecf2226fdd128894ee9605\"},\"peers\":[{\"peer_id\":\"[email protected]:50452\"}]}"
ts=2021-09-27T12:41:00.253616575Z level=debug module=services/construction caller=construction.go:371 msg="ConstructionParse OK" response="{\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}},\"metadata\":{\"fee_gas\":10000}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":2},\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-32198922323\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":3},\"related_operations\":[{\"index\":2}],\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qrjkku80vh3tdfpp9mj3wvx3e9x3dnwk7gxgfym0\"},\"amount\":{\"value\":\"32198922323\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}],\"signers\":null,\"metadata\":{\"nonce\":6}}"
2021/09/27 14:41:00 Syncing 52
ts=2021-09-27T12:41:00.255055732Z level=debug module=services/construction caller=construction.go:284 msg="ConstructionCombine OK" response="{\"signed_transaction\":\"omlzaWduYXR1cmWiaXNpZ25hdHVyZVhAPqZdMTEPgNL8DIu2LTPFK6XOq+C+kMCbNfUjC3p/Y0lyfOAGx93J70xxxFWDhXOOLR7rU6pocCcOmcTNZtWvC2pwdWJsaWNfa2V5WCBOpTKPlD729m2q7XTLDpnDscRfdjB7QlAD28fLNjjtNXN1bnRydXN0ZWRfcmF3X3ZhbHVlWGGkY2ZlZaJjZ2FzGScQZmFtb3VudEFkZGJvZHmiYnRvVQDla3DvZeK2pCEu5Rcw0clNFs3W8mZhbW91bnRFB380kFNlbm9uY2UGZm1ldGhvZHBzdGFraW5nLlRyYW5zZmVy\"}"
ts=2021-09-27T12:41:00.255662062Z level=debug module=services/construction caller=construction.go:371 msg="ConstructionParse OK" response="{\"operations\":[{\"operation_identifier\":{\"index\":0},\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}},\"metadata\":{\"fee_gas\":10000}},{\"operation_identifier\":{\"index\":1},\"related_operations\":[{\"index\":0}],\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qqnv3peudzvekhulf8v3ht29z4cthkhy7gkxmph5\"},\"amount\":{\"value\":\"100\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":2},\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"},\"amount\":{\"value\":\"-32198922323\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}},{\"operation_identifier\":{\"index\":3},\"related_operations\":[{\"index\":2}],\"type\":\"Transfer\",\"status\":\"\",\"account\":{\"address\":\"oasis1qrjkku80vh3tdfpp9mj3wvx3e9x3dnwk7gxgfym0\"},\"amount\":{\"value\":\"32198922323\",\"currency\":{\"symbol\":\"ROSE\",\"decimals\":9}}}],\"signers\":[\"oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000\"],\"metadata\":{\"nonce\":6}}"
ts=2021-09-27T12:41:00.256513953Z level=debug module=services/construction caller=construction.go:187 msg="ConstructionHash OK" response="{\"transaction_identifier\":{\"hash\":\"eb70739e8260e136603448fc3de7759eb857b051d4995a8cb2c777e009f9f05b\"}}"
Transaction Created: eb70739e8260e136603448fc3de7759eb857b051d4995a8cb2c777e009f9f05b
  oasis1qzzd6khm3acqskpxlk9vd5044cmmcce78y5l6000 -- 32.198922323 ROSE --> oasis1qrjkku80vh3tdfpp9mj3wvx3e9x3dnwk7gxgfym0
level=error module=grpc/client caller=grpc.go:244 ts=2021-09-27T12:41:00.257654623Z msg="request failed" method=/oasis-core.Consensus/GetTransactionsWithResults req_seq=343 rsp="unsupported value type" err="rpc error: code = Canceled desc = context canceled"
ts=2021-09-27T12:41:00.25772028Z level=error module=services/block caller=block.go:67 msg="Block: unable to get transactions" height=52 err="rpc error: code = Canceled desc = context canceled"
[STATS] Transactions Confirmed: 0 (Created: 0, In Progress: 1, Stale: 0, Failed: 0) Addresses Created: 1
Check failed: head block not found: unable to get head block identifier: unable to get current block identifier: unable to broadcast pending transactions: unable to enqueue transaction for broadcast

intent for reclaim escrow

currently the intent is such that you reduce the balance in terms of a separate "pool shares" currency. that was just a wild idea not at all grounded in the reality of rosetta's model. we need a design that fits, among others, these properties:

  • a transaction must come back through the data API as a superset of the intent
  • an account identifier has a fixed currency

it had been done this way with the pool shares in the first place because you don't know for sure what the token worth of the shares will be when the transaction executes.

Error report after service restart

{"Version":"20.12.2","caller":"node.go:560","level":"info","module":"oasis-node","msg":"Starting oasis-node","ts":"2021-05-10T02:53:44.420111467Z"}
{"caller":"node.go:576","err":"failed to open persistence database: Cannot acquire directory lock on "/data/persistent-store.badger.db". Another process is using this Badger database.: resource temporarily unavailable","level":"error","module":"oasis-node","msg":"failed to open common node store","ts":"2021-05-10T02:53:44.426644523Z"}

What is the problem, please? How to solve

Bump rosetta-sdk-go version to 0.2.0

There have been some improvements and breaking changes since 0.1.5 that we're currently using and it will be easier to prepare for #18 if we do this bump now.

Setup release process

We should set up a release process, similar to the oasis-core and oasis-core-ledger repositories.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.