liskhq / lisk-service Goto Github PK
View Code? Open in Web Editor NEW:gear: API based service provider to Lisk user interfaces
Home Page: https://lisk.com
License: Apache License 2.0
:gear: API based service provider to Lisk user interfaces
Home Page: https://lisk.com
License: Apache License 2.0
According to proposals to the network consensus, enable behalf of user interfaces to create multisignature groups, initiate transactions and sign pending multisignature transactions, store with an incomplete/complete set off signatures, retrieve pending multisig accounts & transaction, mark rejected transactions and remove transaction once it is confirmed or expired
Peers API returns no data.
Make sure that the API endpoint returns correct data.
Call /api/v1/peers
Update dependencies with critical
and high
security issues.
npm audit
shows no critical
and high
security issuesThe list of task to support transition to open source
The list of task to support transition to open source
Provide user interfaces with a fee estimate service that conforms with LIP-0016
This LIP proposes a fee estimation algorithm that suggests a fee depending on the priority of the transaction for the user and the blockchain’s recent history. The algorithm is based on an Exponential Moving Average (EMA). It is implemented in a node of the Lisk network and the wallet queries its output to get the transaction fee estimation for the user.
The protocol will define a minimum fee for every transaction. It will be up to each user to set the fee for each transaction, but any transaction received with a fee below that minimum fee will be considered invalid by the protocol.
Transaction aggregator API returns no data.
Make sure that the API endpoint returns correct data.
Call /api/v1/transactions/statistics/day
As an multi-signature API user I would be able to:
Provide user interfaces with notifcations of multisignature transaction events (new accounts, transactions, signatures, rejections)
TBD
The Service Blockchain API returns number of confirmations and does not associate it with any kind of information whether the block reached finality or not.
This was previously up to the UI client based on the number of confirmations - see this snippet.
Make sure that there is a reliable way to return that information from the API.
With the implementation of the BFT protocol in the core product the way a block is considered final has changed. That means that the arbitrarily chosen number of confirmations (101) is essentially incorrect and can be misleading.
As a user; I'd like to see the latest votes
Help delegates have a better understanding about changes in the list of their voters.
Help voters get notified if the community is revoking trust from a delegate or increasing attention towards another.
Update the documentation.
README.md
file is updatedMigrate the project codebase to Node 12.x
Make Lisk Service compatible with the SDK v4. Address all upstream API changes made by the SDK maintainers, including new features. Create the persistent store for frequently used data such as blocks and transactions.
The README documentation needs the following updates:
ecosystem.*
filenamesREDIS_PORT
anymore replaced by SERVICE_BROKER
and SERVICE_CORE_REDIS
that point to two different Redis DBsAdd JSON-RPC API so external clients can access it.
moleculer-io
Integration tests needs to be updated.
There is a need for tests run against a real blockchain.
testnet
environmentIn this scenario, the peers' list is updated by the core-component
and stored in the Redis database. Modify the core-component
to write to Redis and configure gateway-component
to make use of that data.
Note that data has to be collected in several request as the Lisk Core node does not maintain a complete list of them.
Next forgers is not being updated and the API returns empty dataset.
Make sure that the API endpoint returns correct data.
Call /api/v1/delegates/next_forgers
Request library is going to be deprecated soon.
Add ES linting to the project.
Keep high coding standard across all Lisk projects.
This issue concerns an implementation of the fee estimator in Lisk Service as described in LIP-0016.
updated
and blockHeight
Add readme file in markdown format for microservice framework.
The /api/v1/blocks
endpoint does not work.
The /api/v1/blocks
endpoint provides data about blocks.
Request data from the /api/v1/blocks
endpoint does not work.
Current development
In order to support marketing, the API needs to have a proper documentation in a Swagger/OpenAPI format.
Make sure that reference documentation is generated from validation specs in the Gateway and it is in a proper YAML format.
For example:
{
version: '2.0',
swaggerApiPath: '/peers',
params: {
...
sort: { optional: true, type: 'string', enum: ['height:asc', 'height:desc', 'version:asc', 'version:desc'] },
},
source: peersSource,
envelope,
};
translates to:
/peers:
get:
tags:
- Peers
summary: Retrieves network peers.
operationId: getPeers
description: |
Retrieves network peers with details based on criteria.
Supports pagination.
##
**Example**
`/api/v1/peers`
parameters:
...
- in: query
name: sort
description: Fields to sort results by
required: false
type: string
enum:
- height:asc
- height:desc
- version:asc
- version:desc
default: height:desc
produces:
- application/json
responses:
200:
description: array of peers
schema:
$ref: '#/definitions/PeersWithEnvelope'
400:
description: bad input parameter
Use the file /services/gateway/apis/http-version1/swagger/version1.yaml
as an example.
The last stage of the open source transition - continuous integration and continuous delivery.
Implement a redis-based job queue in the framework, so all projects can benefit from the implementation.
Update: this was requested in the 2020Q1 audit report.
To avoid repeating the code for all components based on the template, several parts can be moved to a common library shared among all projects.
This issue concerns migrating shared code of core-component
to the new inter-component framework.
Keeping all shared code in a separate npm library is beneficial for both Lisk Service and Lisk Could projects.
Add Dockerfile(s) required to run Lisk Service in Docker environment.
Docker environment is needed to deploy Lisk Service on production.
The scope of this issue to test the alpha release candidate of 0.1.0 and fix the identified bugs.
Add PM2 configuration to make production and testing deployments possible.
Make all dependencies up-to-date so there are no security issues reported.
Some operations related to Lisk Core need to collect all information at one request.
The lis of task to support transition to open source
The list of task to support transition to open source - Quality Assurance
To ensure API stability and availability, a proper API gateway needs to be established.
Add HTTP API so there is a way to access the Lisk Service from a client app.
Add Mapper and copy mapping files from Lisk Cloud Gateway
Release the first alpha version on the development environment.
0.1.0-alpha.0
is deployed on development environmentImplement the HTTP endpoint for fee estimation algorithm.
/api/v1/fee_estimates
/api/v1/fee_estimates
returns the following structure:{
"data": {
"feeEstimatePerByte": {
"low": "<FEE_IN_BEDDOWS>",
"medium": "<FEE_IN_BEDDOWS>",
"high": "<FEE_IN_BEDDOWS>",
},
},
"meta": {
"updated": "<ISO_DATETIME>",
"blockHeight": "<LAST_BLOCK_HEIGHT_USED>",
},
"links": {},
}
List of task to make core service as standalone
Sprint 1
Sprint 2
Sprint 3-4
Sprint 4
Make sure that delegate-related API endpoints work properly.
Making sure that delegate API endpoints are working is essential to the future Lisk Service release.
Implement the JSON-RPC 2.0 endpoint for fee estimation algorithm.
get.fee_estimates
get.fee_estimates
returns the following structure:{
"jsonrpc": "2.0",
"result": {
"data": {
"feeEstimatePerByte": {
"low": "<FEE_IN_BEDDOWS>",
"medium": "<FEE_IN_BEDDOWS>",
"high": "<FEE_IN_BEDDOWS>",
},
},
"meta": {
"updated": "<ISO_DATETIME>",
"blockHeight": "<LAST_BLOCK_HEIGHT_USED>",
},
},
"id": 1
},
In order to keep the dependencies minimal the core service needs to be migrated to the framework.
During the code review a lot of redundant code across all modules was found. Most of the code shares similar logic and provides similar functionality. Migrating various Core imports to the framework project reduces the amount of code and helps with standardisation of the framework API.
The list of task to deploy open-source Lisk Service into production
package.json
services
containing particular microservicesshared
containing microservice frameworkshared/bin
containing CLI toolstests
containing testsThe list of task to support transition to open source - Code refactoring
Peer statistics are not able to retrieve by a client.
Peer statistics are able to show in a client.
Go to the the network stats page.
1.3.0
Update project licence to Apache 2.0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.