Created at 12pm, Feb 29
ilkeCrypto
0
Linera Whitepaper
MBIe0DyyL3mMbq_3xs5PWGDnuPEFg_mw2kZ0WFs3HSE
File Type
PDF
Entry Count
99
Embed. Model
jina_embeddings_v2_base_en
Index Type
hnsw

Linera is a blockchain infrastructure that aims to support the most demanding web3 applications by providing them with predictable performance, security, and responsiveness at the Internet scale. To do so, Linera solves the blockspace scarcity problem by introducing a new, integrated, multi-chain paradigm built upon elastic validators. Linera puts users at the center of the protocol by allowing them to manage the production of blocks in their own chains—called microchains—for optimal performance.

In the rst case, the Linera client must upload missing certicates in the chain id (and possibly its ancestors) as described in the previous paragraph, until next-heightid() > n. In the second case, the client must upload missing certicates in the chains that have sent the messages m I to id. When B has been correctly constructed (i.e. is not trying to receive messages that were never sent), the set I is necessarily covered by the certicates listed in the union receivedid() where ranges over any quorum of validators.
id: 78af7a41136c55fb82809aa19a503cc5 - page: 13
Importantly, uploading a missing block to a validator benets all clients. To maximize liveness and decrease the latency of their future operations, in practice, it is expected that users proactively update all the validators when it comes to their own chains, therefore minimizing the need for synchronization by other clients. However, the possibility of synchronization by everyone is important for liveness. It also allows a certicate to act as a proof of nality for the certied block. In practice, a client should execute the optional synchronization step ( 0 ) and the voting step ( 1 ) on a separate thread for each validator. To prevent denial-of-service attacks from malicious validators, a client may stop synchronizing validators as soon as enough votes are collected ( 2 ).
id: 81d8da59a75084cfe78797e29c569c16 - page: 13
The steps 1 2 3 used to decide a new block in a single-owner chain constitute a 1.5 round-trip protocol. Inspired by reliable broadcast, this protocol does not have a notion of view change to support retries. In other words, a chain owner that has started submitting a (valid) block proposal B cannot interrupt the process to propose a dierent block once some validators have voted for B. Doing so would risk blocking their chain. For this reason, Linera also supports a variant with an extra-round trip (Section 2.9).
id: de4c3a9f85bc2531e74c8f079b4d86e3 - page: 13
2.9 Extensions to the core protocol We now sketch a number of important extensions to the core Linera multi-chain protocol. Permissioned chains. The protocol presented in Section 2.8 allows extending a singleowner microchain optimistically in 1.5 client-validator round trips. Linera also supports a more complex protocol with 2.5 round trips to address the following use cases: A single chain owner wants to be able to safely interrupt ongoing block proposals while they are in progress. Operations in blocks depend on external oracles (e.g. Unix time) and include conditions that may become invalid after being valid. Multiple owners wish to operate the chain (assuming minimal o-chain coordination). A single chain owner wishes to delegate maintenance operations related to validator recongurations. We omit the details of the 2.5 round-trip protocol for brevity. It can be seen as a simplied partially-synchronous BFT consensus protocol with view changes (aka rounds) but 13
id: f058d617e79e041ab45797191a2726f3 - page: 13
How to Retrieve?
# Search

curl -X POST "https://search.dria.co/hnsw/search" \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"rerank": true, "top_n": 10, "contract_id": "MBIe0DyyL3mMbq_3xs5PWGDnuPEFg_mw2kZ0WFs3HSE", "query": "What is alexanDRIA library?"}'
        
# Query

curl -X POST "https://search.dria.co/hnsw/query" \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"vector": [0.123, 0.5236], "top_n": 10, "contract_id": "MBIe0DyyL3mMbq_3xs5PWGDnuPEFg_mw2kZ0WFs3HSE", "level": 2}'