Commit Graph

391 Commits

Author SHA1 Message Date
Daniel Sanchez c3b5dc98e4
Rename consensus service to carnot consensus (#556) 2024-01-09 11:08:24 +01:00
Giacomo Pasini b7d1fd9256
Nomos chat fixes (#555)
* Make chat messages unique

Since DA will rightfully ignore duplicated messages, we need to add a nonce to make sure
every message is unique, so that a user can send the same message twice.
This nonce is randomly generated for simplicity.

* Clear in_flight status upon error on chat app
2024-01-08 15:40:19 +01:00
gusto 285300f365
Receive blocks blobs in parallel (#554)
* Receive blocks blobs in parallel

* Update nomos-cli config
2024-01-08 12:56:11 +02:00
gusto 15c366c606
Testnet config update for nomos.tech (#553)
* Update http ports for nomos nodes

* Increase DA storage limit
2024-01-05 15:31:05 +02:00
gusto 7077ef38fa
Limit number of committed blocks in info requests (#552)
* Limit number of committed blocks in info requests

* Make carnot info limit configurable
2024-01-05 11:21:59 +02:00
Daniel Sanchez 6287e554ae
consensus-engine to carnot-engine. (#551)
* Refactor: consensus-engine to carnot-engine.
Move under consensus/carnot-engine

* Fuzztests update with carnot-engine

* Update missing refactor in tests

---------

Co-authored-by: Gusto <bacvinka@gmail.com>
2024-01-04 15:09:43 +01:00
Giacomo Pasini 6e718e7bba
Add chat demo for testnet (#495)
* Add chat demo for testnet

This commit adds a simple demo to showcase the capabilities of the
Nomos architecture. In particular, we want to leverage the DA
features and explore participants roles.
At the same time, we're not ready to commit to any speficic format
or decision regarding common ground yet.
For this reason, we chose to implement the demo at the Execution
Zone (EZ) level.
In contrast to the coordination layer, each execution
zone can decide on its own format, which allows us to experiment
without having to set a standard.

The application of choice for the demo is an (almost) instant
messaging app where the messages are broadcast to the public by
leveraging the full replication data availability protocol.
In this context, the cli app acts as a small EZ disseminating
blobs, promoting blob inclusion and updating its state (i.e. list
of exchanged messages) upon blob inclusion in the chain.



---------

Co-authored-by: danielsanchezq <sanchez.quiros.daniel@gmail.com>
2024-01-03 15:47:21 +01:00
gusto 09cd539bf2
Tests for tree layer sizes (#545) 2024-01-03 15:19:42 +02:00
gusto 86ee8ff8c7
Bump to rust 1.75 (#550) 2024-01-02 17:34:41 +02:00
Daniel Sanchez 37cf900617
Use blockid as tip (#549) 2024-01-02 16:11:53 +01:00
gusto 361b41cf27
Set and get blocks tip without filtering (#548)
* Set and get blocks tip without filtering

* Add a check for the higher view when setting a tip
2024-01-02 16:15:22 +02:00
Daniel Sanchez a2959712bb
Unbox select traits (#547) 2024-01-02 12:53:17 +01:00
gusto 0077c9b6a5
Add tests for child parent lookup and fix parent lookup fn (#544) 2023-12-13 17:04:13 +02:00
Youngjoon Lee 643bcef542
Reestablish conn with mixnode if err occurs (#501) 2023-11-28 18:38:48 +09:00
Youngjoon Lee acd15a4ed5
Update code related to rust-kzg according to its latest ver (#538) 2023-11-28 17:55:55 +09:00
Youngjoon Lee 2e6365bb95
Use 2x timeout for integration tests in Codecov CI (#533) 2023-11-28 09:02:24 +09:00
gusto ab68d3e16e
Update rust version in testnet and CI (#535) 2023-11-21 12:30:16 +02:00
gusto eb69cd34ec
Update ci to rust 1.73.0 (#534) 2023-11-17 09:48:35 +01:00
iwantanode a1b72f1f83
fix: typos in the docs (#527)
l
2023-11-13 11:49:37 +09:00
Giacomo Pasini a524cc2dcf
use reqwest json() method (#525) 2023-11-11 16:49:18 +01:00
gusto 421ea6c0c7
Update testnet related configuration (#524)
* Use value instead of variable in .env.testnet

* Reduce testnet logs verbosity

Debug logs are too verbose for long running node instances. If needed
users could manually adjust configuration in `testnet/*_config.yaml`
files without rebuilding the docker images.
2023-11-10 16:19:52 +02:00
Daniel Sanchez cc6b6d1cc9
Refactor nomos api: (#521)
* Extracted common service into services
* Moved api implementation to nomos node crate
2023-11-10 09:28:10 +01:00
gusto 5c7e0f511f
Update env and config files for testnet (#520) 2023-11-09 12:59:06 +02:00
Giacomo Pasini 3e1a722bd2
Add option to not collect logs (#517)
There's currently no way for an app with a logger service to disable
log collection.
2023-11-08 15:47:07 +01:00
Al Liu c3422c196c
New http api to nomos-node integration (#490)
* Integrate new http api to nomos-node
2023-11-08 16:55:47 +08:00
Giacomo Pasini ccc85904d9
do not use prefix in serialization (#514) 2023-11-07 15:24:49 +01:00
Giacomo Pasini 1b4c0638fa
Do not exit the process during dissemination (#516)
* Do not exit the process during dissemination

This is now library code and we should not exit the process if an
error is encountered

* clippy happy
2023-11-07 15:24:31 +01:00
Giacomo Pasini 3028cdb5d1
Add option to provide custom writer to the logger backend (#518)
* Add option to provide custom writer to the logger backend

* fmt
2023-11-07 15:24:02 +01:00
gusto c14998bb9a
Da voter config for docker compose (#513)
* Readd docker build context

* Configurable da protocol voter

* Do not use private key naming for da voter
2023-11-07 13:52:27 +02:00
Giacomo Pasini df683ad154
Limit GetBlocks response size (#515)
Put a hard limit of 512 blocks in the response returned by
GetBlocks to avoid slowing things down. This number was chosen
rather arbitrarily. We might want to do some more fine tuning.
2023-11-07 10:25:22 +01:00
Youngjoon Lee a58d3fb63c
Store logs from failed CI as artifacts (#508) 2023-11-07 09:38:10 +09:00
Giacomo Pasini 0730e05a6f
Add raw api module to nomos-cli (#511)
* Add raw api module to nomos-cli

Add a separate module which contains all raw api calls and make
them reuse the same reqwest client for increased efficiency

* Use json instead of wire format in mempool add api

Uniform all http api to use json as the encoding
2023-11-06 16:24:43 +01:00
Al Liu 196f395992
Add `block_info` api for new HTTP service (#509) 2023-11-06 22:14:16 +08:00
Giacomo Pasini 56e8506704
Split long consensus response in separate APIs (#502)
* Split long consensus response in separate APIs

Consensus info was returning the full list of blocks even though
that can get quite large with time. Instead, this commit change
that API to return a constant size message and adds a new one to
return a chain of blocks with user specified endings.

* Update nomos-services/consensus/src/lib.rs

Co-authored-by: Youngjoon Lee <taxihighway@gmail.com>

* Fix test

---------

Co-authored-by: Youngjoon Lee <taxihighway@gmail.com>
2023-11-06 12:43:48 +01:00
Youngjoon Lee 1c9528e38f
Fix occasional port conflict in CLI integration test (#504) 2023-11-06 08:47:15 +09:00
Giacomo Pasini 350620b829
Do not skip Block::id during ser/de (#505)
Block.id is a necessary piece of information in the context
of the consensus engine since there it's not possible to recover
the id of the block since the contents are not available.
Instead, we should only skip that field when serializing/deserializing
a full block.
2023-11-03 10:14:26 +01:00
omahs e8310e3ea8
Fix typos (#503)
* fix typo

* fix typo

* fix typo

* fix typos

* fix typo
2023-11-03 09:29:40 +01:00
gusto ea1862864b
Docker compose static testnet configuration (#499)
* Add static node network configuration in a new compose file

* Update ports and fix testnet config

* Remove replicas

* Update testnet bootstrap config

* Remove replicas env var in static conf

* Bootstrap node depends on mixnodes

* Scheme version for compose.static.yml

Co-authored-by: Jakub <i+github@always.fail>

* Remove unnecessary context defintion

* Add container names in compose.static.yml

* Simplify compose services build context

---------

Co-authored-by: Jakub <i+github@always.fail>
2023-11-02 15:23:35 +02:00
Youngjoon Lee c3478cf6a6
Set voter to DA attestation (#498) 2023-11-02 18:44:31 +09:00
Al Liu ba90ed1b55
Nomos http API (#476)
* Info api

* Da blob api (#487)

* Add storage api for new http backend (#488)

* Mempool add APIs (#489)
2023-11-01 17:14:58 +08:00
GoodDaisy ff8fc577a0
Fix typos (#481)
Co-authored-by: Daniel Sanchez <sanchez.quiros.daniel@gmail.com>
2023-10-31 14:38:42 +01:00
Youngjoon Lee ea1dcb82fd
Increase the timeout of happy integration tests (#494) 2023-10-31 20:32:07 +09:00
Youngjoon Lee 7dce530d13 Revert: Stop using msg hash as a libp2p msg ID 2023-10-31 19:56:36 +09:00
Youngjoon Lee 722476f3b1 Stop using msg hash as a libp2p msg ID 2023-10-31 19:52:32 +09:00
Al Liu 9b3c675b3a
Metrics api (#466)
* Add metrics API
2023-10-31 17:20:04 +08:00
Youngjoon Lee 5e520ae194
Set consensus timeout conservatively for happy-path integration tests (#492) 2023-10-31 00:39:02 +09:00
Giacomo Pasini a487d8c7a0
Add DA utilities to nomos-cli (#493)
* Move da disseminate command into separate module

* Add utilities to retrieve block contents

* fix tests

* fix typo
2023-10-30 16:19:25 +01:00
gusto eeb88b9430
Docker compose consensus layer config (#482)
* Same consensus node list for all nodes

* Extract duplicate code and add debug info

* Update initial net peer list script

* Remove unused envvar
2023-10-30 16:51:40 +02:00
Giacomo Pasini e50561839d
Remove block contents from mempool (#485)
* Add Hash type param to Attestation and Certificate

* remove block contents from mempool
2023-10-30 12:38:04 +01:00
gusto 7fcfe890be
Configure supermajority threshold via envvars (#471) 2023-10-30 10:38:57 +02:00