Added
- Support for ECDSA (secp256k1) and Ed25519 public key storing. Architecture of the corresponding
transaction family was redefined to make it easily extendable.
- Finalized WebSockets implementation. You can connect to them using
`ws://YOUR_NODE_ADDRESS:YOUR_NODE_PORT/`. A few details:
- The message format is based on JSON RPC.
- You can track new blocks, batches, transactions statuses, transfers and atomic swap events.
- For more information please refer to [documentation][6].
- One user may request another to pay for their certificates via a special workflow.
- JSON RPC API:
- Now it is possible to filter transactions by their transaction families names.
- API implementation pre-validates transactions before they are processed. This removes a bit of
workload from the transaction processing system.
- Block timestamp is returned along with its ID in WebSockets events.
- The possibility to collect metrics to InfluxDB from the core.
- Guides for running a node on different cloud providers.
Changed
- Upgraded Sawtooth to the stable branch `1.1.x`.
- Significantly (up to 2.5x) improved the performance of the transaction processing by batching read
and write operations.
- Atomic Swap no longer uses user-provided timestamps. Instead it relies on the data provided by the
`BlockInfo` transaction family.
- Atomic Swap is not using an explicit intermediate storage for tokens locked for a swap. This data
is now contained only in atomic swap state entries instead. Such approach gives us less state read
and writes and thus improves the overall atomic swap transactions processing speed.
- Improved validation of JSON RPC requests bodies.
- Development setup:
- Testing framework was changed to `pytest` and custom validator mock was used to write tests for
transaction families. This makes our tests significantly faster and easier to use. For more
information please refer to [README.md].
- Faster builds for the development setup.
Removed
- log.io
Fixed
- Numerous bugs in WebSockets and RPC API implementation.