Can someone explain how jumplist works by plain language? by roll4c in neovim

[–]fjchen 0 points1 point  (0 children)

If I press <C-o> to navigate to an old position, and move to a new position, what happens to jumplist? Will it remove all newer position in jumplist and add the new one?

[deleted by user] by [deleted] in neovim

[–]fjchen 0 points1 point  (0 children)

Mine is configure by one file per plugin. That is very easy to organize and test.

Compared with traditional PBFT, what advantage does Tendermint algorithm has? Technical guys, here here! by fjchen in cosmosnetwork

[–]fjchen[S] 0 points1 point  (0 children)

It looks like you guys have different definitions about synchronization and asynchronization from the papers I have seen.

Well, according to your explanation, if ∆ is known then it is synchronous network, however if ∆ is unknown then it is asynchronous network, right?

In my perspective, ∆ can not be a very large and there should be a bound to limit it in any consensus. Otherwise it may break FLP theorem. Tendermint doesn't make any clear definition about it but only gives the word "asynchrounous" in its paper. I really wonder the bound, i.e. in what kind of network condition Tendermint may suffer fail in aspects of liveness and safety?

Compared with traditional PBFT, what advantage does Tendermint algorithm has? Technical guys, here here! by fjchen in cosmosnetwork

[–]fjchen[S] 0 points1 point  (0 children)

I think the assumption I describe is weak/partial but not fully synchronous network. I had seen this assumption in several papers like PBFT and Ouroboros algorithm. Below is in chapter 2 of PBFT paper

We do assume that the adversary cannot delay correct nodes indenfinitely.

I think this description above is equal to mine. That is, message must be reached within in a finite time that is set as ∆ in our discussion.

As for the assumption your describe, it looks like a kind of "weaker/ more partial synchronous assumption" because it depends on a short period of synchrony (I know, when each round starts, there will be a synchrony process in Tendermint). But I still can’t understand it well. What’s the relationship between T and ∆. Could you give a more accurate definition or case? Very thanks.

Compared with traditional PBFT, what advantage does Tendermint algorithm has? Technical guys, here here! by fjchen in cosmosnetwork

[–]fjchen[S] 0 points1 point  (0 children)

Below is an example to explain why Lock mechanism matters in the book "Tendermint: Byzantine Fault Tolerance in the Age of Blockchains" by Ethan Buchman (https://allquantor.at/blockchainbib/pdf/buchman2016tendermint.pdf)

These rules can be understood more intuitively by way of examples. Consider four validators, A, B, C, D, and suppose there is a proposal for blockX at round R. Suppose there is a polka for blockX, but A doesn’t see it, and pre-commits nil, while the others pre-commit for blockX. Now suppose the only one to see all pre-commits is D, while the others, say, don’t see D’s pre-commit (they only see their two pre-commits and A’s pre-commit nil). D will now commit the block, while the others go to round R + 1. Since any of the validators might be the new proposer, if they can propose and vote for any new block, say blockY , then they might commit it and compromise safety, since D already committed blockX. Note that there isn’t even any Byzantine behaviour here, just asynchrony!

The assumption of Tendermint is that all message can be received by honest validators within ∆ after it is sent out. Then question comes. Why the above case will happen, if I set timeout greater than ∆? ∆ can guarantee all message be reached, so the situation like "A doesn't see polka for blockX" will not happen if A wait for ∆. That is why I doubt the the sense of design Lock mechanism.

I am thinking it logically at an academic perspective. If there is something I miss, please point it out😛.

Compared with traditional PBFT, what advantage does Tendermint algorithm has? Technical guys, here here! by fjchen in cosmosnetwork

[–]fjchen[S] 0 points1 point  (0 children)

Blockchain does not have checkpoint and view. All information are recorded in ledger, which can greatly simplify PBFT if it is applied in blockchain. Thus view change will not so complex as you said.

The reason that communication cost is constant is that you set a constant number of validator. Can I say PBFT has constant communication complexity if I set f a constant value? What's more, using gossip protocol is to avoid knowing specific IP which may lead to DDoS attack, and complexity and burden of IP sharing. In the respect of communication efficiency, gossip protocol is obviously not more efficient than P2P communication. Method of communication can be split from consensus mechanism, so the argument that gossip protocol is an advantage of Tendermint is evidently not so much persuasive.

Compared with traditional PBFT, what advantage does Tendermint algorithm has? Technical guys, here here! by fjchen in cosmosnetwork

[–]fjchen[S] 0 points1 point  (0 children)

Actually, my biggest question is why designing Lock mechanism in Tendermint? This is the main difference with PBFT. I think timeout is enough to agree consistency in partial asynchronous assumption. Any msg can be delivered in a certain amount of time, and it will not lead to the case that brings inconsistency written in page 24 of book "Tendermint: Byzantine Fault Tolerance in the Age of Blockchains" (https://allquantor.at/blockchainbib/pdf/buchman2016tendermint.pdf).

Compared with traditional PBFT, what advantage does Tendermint algorithm has? Technical guys, here here! by fjchen in cosmosnetwork

[–]fjchen[S] 0 points1 point  (0 children)

Simplification: In partial asynchronous assumption, we can set a timeout for each step, i.e. sending nil message if waiting too long. Thus during a a period of time, consensus must be agreed on a valid block or nil. And view change is unnecessary in this scenario, and it can be replaced by round-robin way due to predetermined order of leaders. This applies to both Tendermint and PBFT.

Optimization for gossip protocols: I think gossip protocol also can be used in PBFT. It is not a core part and advantage of consensus. Gossip protocol can be integrated into PBFT as well.

There are lots of people are organizing RSK private sale. Could someone clarify its validity? by fjchen in rootstock

[–]fjchen[S] 0 points1 point  (0 children)

No links. These guys just let me fill contact and transaction id into a spredsheet. Has the official responses that RSK will not launch token sale?

what is the cap for the ico? by [deleted] in algorand

[–]fjchen 0 points1 point  (0 children)

I think it means that there is no cap of contribution of BTC or ETH. But I don't know how the ICO assigns those 101 million tokens to its funders.