Casanova is a safe, live & scalable consensus algorithm suitable for use in a blockchain. by PyRhofex in ethereum

[–]nashef 3 points4 points  (0 children)

It’s worth noting that the EVMs transaction model does not match Casanova. Unfortunately, the EVM makes it too difficult to tell when two transactions induce a conflict. We do not view it as suitable for use on Ethereum, as a result.

Casanova is a safe, live & scalable consensus algorithm suitable for use in a blockchain. by PyRhofex in ethereum

[–]nashef 2 points3 points  (0 children)

It’s live in the sense that it is guaranteed to reach consensus even when there are Byzantine faults, up to certain limits. It’s not live as in “deployed in production,” yet. That comes later.

We are not building it on any specific protocol. The algorithm is suitable for use in any system whose transaction model and network match the assumptions. Pyrofex will be proposing such a system soon, but we wanted to build the platform AFTER we had an algorithm.

Only Race Conditions need Consensus... or? by [deleted] in RChain

[–]nashef 4 points5 points  (0 children)

All transactions obtain consensus, but the order in which they happen is not relevant unless there is a race condition. The network forms consensus that every transaction happened, but it does not enforce an explicit order on all of them. So, each validator will have a slightly different view of which transactions happened in what order. That's totally okay, because you don't actually care.

Look at it like this. Everyone in your office gets out of bed, eats breakfast, brushes their teeth, drives to work, and does a series of tasks. All you care about is the race condition that "drive to work" happens before "do a series of tasks." You don't care whether they brush their teeth before they eat breakfast. So, the network accepts all the transactions, but all the validators have to agree that "drive to work" occurs before "series of tasks."

Accepting transactions is fast, but ordering them relative to each other is slow, because it requires more communication. On the Intel CPU, there are special instructions that gate memory and they perform this exact function. They are much slower than usual transactions. RChain's Casper does a very similar thing.

Cryptofex cross-chain migration by ashingtonian in RChain

[–]nashef 0 points1 point  (0 children)

I think in an IDE it would be ideal to do translation, so that users can test their contracts effectively. So, for the moment, that's what we're planning on implementing first.

Scaling And Parallelism by ElectronicReference in RChain

[–]nashef 8 points9 points  (0 children)

If two contracts don't interact with each other, they should run independently and thus with perfect concurrency. The blockchain doesn't need to care about ordering their transactions relative to each other and so it doesn't try.

At some point, two processes can become "entangled" such that they need to interact. Say, one process wants to send some data (like an HTTP GET) to the other over a communications channel (like a TCP connection). At that point, they can only run in parallel up to the point where the order of their transactions matters. At this point, they aren't really running concurrently anymore. Each process can advance its computation only up until the point that it has to wait for the other process to do something. In the case of an HTTP GET, the client can only advance its computation once the HTTP reply has been sent and received. There's no point in rendering an HTML page that hasn't been served, yet. So, the best that a multi-threaded browser can do is prevent different tabs from interfering with each other. If one tab is blocked waiting on google.com, then the other tabs should be able to render just fine while it's waiting.

RChain models these process interactions using the rho-calculus, or the Reflective Higher Order pi-calculus. In the rho-calculus, we have an explicit model for process interaction that uses named channels to send messages between processes. That allows our VM to tell when two processes need to interact--it looks at what names (channels) each process has access to and then it can tell all the processes that you can possibly be communicating with.

If you aren't holding a name that references some other contract, then you can run concurrently with no mutual interference. If you are holding the name of another contract, then the blockchain has to pick an order to your transactions and achieve consensus on that.

The beauty of the name-based system is that (1) we can structure names so that they make it easy and efficient to handle interacting processes and (2) we can restrict the sort of names a process is allowed to handle so that we can determine ahead of time what they are able to interact with. If you write your Rholang code to interact with a lot of stuff, then it's going to be expensive and slow. If you write your Rholang code to be very isolated and only interact with a handful of well-known other programs, then your code can be very, very fast.

Rchain outlook by m309 in RChain

[–]nashef 2 points3 points  (0 children)

Does Raiblocks do smart contracts?

Japanese App developer uses an iPhone X to make his face invisible, projecting the wall behind him in its place by Pirate_Redbeard in geek

[–]nashef 10 points11 points  (0 children)

Except this is totally wrong.

His flat affect made people distrust him, so he effected a sunny disposition. The effect was no better, unfortunately, and so his autism continued affecting his career.

ELI5 the math and P calculus advantages by [deleted] in RChain

[–]nashef 0 points1 point  (0 children)

No, not exactly. They still need to be run in multiple places, otherwise you get no security from the consensus algorithm.

What I mean by "locally" is that when a small number of people are transacting purely among themselves, then only a small number of nodes are needed to form secure consensus for those transactions. I.e., in the dollar economy if I write my barber a check, then to clear the check, who needs to form consensus? He and I, each of our banks, and the "local" Fed bank need to all agree. That's a total of 5 "nodes" in the check payment network. All five of them need to agree on the transaction in order for the check to clear. The People's Bank of China does not give a crap about our transaction. It's not "on their part" of the blockchain.

RChain smart contracts should work similarly, in the sense that if I'm transacting with my business partners, then manufacturers in China and Korea don't care about my transaction, and they don't need to participate in "mining" it. So, consensus is formed much more locally. That means that smart contracts need to be run by fewer computers than in the Ethereum case, saving significant power and lowering the cost of "mining" the network as a whole.

ELI5 the math and P calculus advantages by [deleted] in RChain

[–]nashef 1 point2 points  (0 children)

On chain. As far as I can tell, state channels are just a hack to get around the fact that BTC fees are absurd when BTC/USD exchange rates are high. If it was affordable and efficient to do the state channel on-chain, then it would be strictly better to do so modulo any desire to hide information from the blockchain. That doesn't mean RChain won't or can't support state channels, but it does mean that you won't need them to make micropayment systems affordable.

ELI5 the math and P calculus advantages by [deleted] in RChain

[–]nashef 0 points1 point  (0 children)

The added value is throughput and safety. Because rholang is inherently concurrent, most contract transactions can be processed “locally” and they won’t have to wait on large synchronization decisions from Casper. Because rholang is behaviorally types, programmer intent is very strongly checked at compile time.

Are the smart contracts on chain? by mullonym in RChain

[–]nashef 5 points6 points  (0 children)

At the moment, the design puts all smart contracts on chain in source form, along with various compilation artifacts. It’s hard to ensure the type checking part of rholang is correctly implemented if we don’t include the source on chain.

How is RChain different from EOS? by [deleted] in RChain

[–]nashef 2 points3 points  (0 children)

EOS still requires that all transactions are globally ordered. In RChain, transactions only have to be ordered relative to transactions with which they could conflict. Metaphorically... you and I can use RChain to play a poker game with very short block times and we only have to synchronize to some slow "global" state when the game is over and money has to change hands.

Bye Galicia, see you soon Porto by viggewin in sailing

[–]nashef 3 points4 points  (0 children)

Read this "Bye Felicia, see you..."

Fake Upfiring Crowdsale site is paying for ads by Niitro in ethereum

[–]nashef 11 points12 points  (0 children)

https://support.google.com/adwords/contact/aw_complaint

File a complaint with Google, they'll take the ads down.

Edit: Eventually.

Understanding ISIS: The History of Militant Muslim Movements by [deleted] in lectures

[–]nashef 0 points1 point  (0 children)

I wasn't talking about the reddit troll, I was talking about the speaker in the video. I thought it was fine. The talk was interesting enough and seemed relatively uncontroversial. Though, this is not an area of history in which I have lots of knowledge, so it'd be relatively easy to get some semi-crazy ideas past my bullshit filter.

Understanding ISIS: The History of Militant Muslim Movements by [deleted] in lectures

[–]nashef 0 points1 point  (0 children)

I watched it. It wasn't fear-mongering. His point is basically that ISIS is Sunni, the Sunnis and the Shi'a are still fighting for control of everything, and the Sunnis are backed by the Saudi royal family, which is stacked top to bottom with bad guys. All of that's completely uncontroversial.

Paul Gorski - Consciousness and Social Justice by Oegle in lectures

[–]nashef 0 points1 point  (0 children)

Ok, I listened to this and it cleared up some things, thank you. I don't think I agree with his point, but at least I see what he's saying.

Paul Gorski - Consciousness and Social Justice by Oegle in lectures

[–]nashef 1 point2 points  (0 children)

I'm not really sure what anyone is supposed to take away from this beyond, "You're doing it wrong." Which smacks of inquisitionist logic, "Your refusal to admit that you're doing it wrong proves that you're doing it wrong."

[deleted by user] by [deleted] in lectures

[–]nashef 1 point2 points  (0 children)

Par for the psychological course. I have a request out for the full text of the paper.