fissionlabsio / juno Goto Github PK
View Code? Open in Web Editor NEWA Cosmos Hub data aggregator and exporter.
License: Mozilla Public License 2.0
A Cosmos Hub data aggregator and exporter.
License: Mozilla Public License 2.0
In worker#process
we first export and persist all precommits/signature in the block found in LastCommit
and then we export and persist the block itself. There is a foreign key in block (proposer_address
) that maps to the validators table. However, the block's proposer may not exist in the validator
table if the proposer is new and has never signed before.
I'm experimenting with cosmos, and I'm having some issue connecting to the RPC and LCD endpoints.
If I curl both LCD and RPC endpoints I get a reply from the network, but when I use the following config.toml
to connect to the network I get the following error
{"level":"info","error":"Validators: response error: RPC error -32603 - Internal error: height must be greater than 0","height":83,"time":"2020-02-27T17:07:48Z","message":"failed to get validators for block"}
config.toml
rpc_node = "http://127.0.0.1:26657"
client_node = "http://127.0.0.1:1317"
[database]
host = "localhost"
port = 5432
name = "postgredb"
user = "admin"
password = "password"
ssl_mode = "disable"
I have setup multiple validators, and blocks are being produced normally.
Is there something wrong in my configuration?
Thanks a lot
Implement unit and integration tests to achieve at least 90% coverage.
Improve modularity and remove any assumptions about the origin chain so Juno can sync with any Tendermint-based chain.
Improve queue consumer/producer model to perhaps improve speed of syncing. Currently we have a single producer/consumer model. Although, this mostly impacts syncing from an already large existing chain.
Currently the worker naively retries every failed export:
// start starts a worker by listening for new jobs (block heights) from the
// given worker queue. Any failed job is logged and re-enqueued.
func (w worker) start() {
for i := range w.queue {
if err := w.process(i); err != nil {
// re-enqueue any failed job
// TODO: Implement exponential backoff or max retries for a block height.
go func() {
log.Printf("re-enqueueing failed block %d\n", i)
w.queue <- i
}()
}
}
}
A better approach is needed to not continuously retry the same heights.
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.