-
An evil proposer can drop valid transactions (tendermint/tendermint#3322). To ensure tx A will be committed, the client needs to a) send it to multiple nodes b) subscribe for its result https://tendermint.com/docs/app-dev/subscribing-to-events-via-websocket.html or query the result later using
/tx
API endpoint (requires the tx indexer enabled) https://tendermint.com/rpc/#tx. -
Multiple nodes above requirement comes from a simple fact that an evil node can drop your tx.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"context" | |
"os" | |
"os/signal" | |
"syscall" | |
"github.com/tendermint/tendermint/libs/log" |
- Healthy Open Source
- explicit goal to be a lightweight process
- concrete ability to scale to hundreds of contributors
- good fundamental goals
- transparency
- participation
- efficacy
- ecosystem projects encouraged but not required to adopt foundation governance templates
- creation of projects under TSC explicity delegates authority from TSC to project TC
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package log | |
import ( | |
"fmt" | |
"io" | |
stdlog "log" | |
"strings" | |
) | |
type stdlibLogger struct { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use anyhow::anyhow; | |
use anyhow::Result; | |
use std::mem::swap; | |
type Child = Option<Box<Node>>; | |
#[derive(Debug, Eq, PartialOrd, PartialEq, Clone)] | |
pub struct Node { | |
pub value: i32, |
OlderNewer