HNHacker News
TopNewBestAskShowJobs

hem777

64 karma · joined December 5, 2022

submissionscomments
hem777··on Binance-hacker-1029 – $5.6B stolen from Binance
That’s some proper leadership right there
hem777··on Backdoor in Claude Code for VS Code extension on the Cursor Marketplace
”I've confirmed Binance use Claude Code with this extension.”
hem777··on EU chief opens door for Canada to become 'associate member'
1) it wasn’t millions (plural) 2) absolutely everyone would be better off if Leningrad was part of Finland
hem777··on Cloudflare Turnstile requiring fingerprintable WebGL
The alternative is not have that one choke point that can be hammered. Decentralize.
hem777··on Collaborative Text Editing Without CRDTs or OT
It wasn’t really that we wanted to have a CRDT per se, but as it was implemented on top of an op-based append-only log CRDT, it turned out to hold those properties, which makes it a CRDT. We wanted to have the edits to be able to arrive in any order or after delays due to network partitions (this was for a p2p network).
hem777··on Collaborative Text Editing Without CRDTs or OT
Agreed, the undoing and replying isn’t exactly non-fancy. Peristent B+Tree is also not very non-fancy.
hem777··on Collaborative Text Editing Without CRDTs or OT
Cool to see a write up on this! Discovered the same method years ago and also wondered why it doesn’t show up in academic literature.

I implemented this in a decentralized context and as a CRDT though, so that the properties hold (commutative, idempotent and associative).

hem777··on Widespread power outage in Spain and Portugal
Not if 1 million people install and monitor them instead of 100 people.
hem777··on Every System is a Log: Avoiding coordination in distributed applications
There’s also OrbitDB https://github.com/orbitdb/orbitdb which to my understanding has been a pioneer for p2p logs, databases and CRDTs.
hem777··on Two undersea cables in Baltic Sea disrupted
Number two is calling for nukes, anywhere by anybody. Nobody else brings that to the conversation.
hem777··on Ethereum has blobs. Where do we go from here?
My non-techie brother has been staking his 1 ETH he bought couple of years ago and has earned today, in his words, “slightly more than from my insurance savings account in the past 10 years”. I think that’s a really nice use case.
hem777··on Reflect – Multiplayer web app framework with game-style synchronization
One way to do authorization is to sign each operation/message and then verify the signature to match a public key in an access control list. This also enables CRDTs to work in a peer to peer context.

But as aboodman says in a sibling comment, if there’s a server as an authority, it can simply reject messages from unauthorized clients.

hem777··on Coinbase Sued by SEC for Breaking US Securities Rules
Great analogy! Well done.
hem777··on DJI Mavic 3 Pro
Are you or your people being, or have been, slaughtered by a fascist, barbaric military?

If yes, I’m sorry and I understand your position. If not, gtfo.

hem777··on KV.js
Maybe? Depends on the rest of the software you’d be developing and what features and abstractions you’d need.

The point was that “just use redis” is a poor and incorrect advice.

hem777··on KV.js
Can you run Redis in browser? You can’t.

Is an in-process, in-memory database faster than making a query over network? Yes it is.

hem777··on HyperShell: Spawn shells anywhere. Fully peer-to-peer
*and if you don’t want to sign up for DDNS :)
hem777··on HyperShell: Spawn shells anywhere. Fully peer-to-peer
Accessing a “home computer” behind a NAT you don’t control or has a dynamic IP, eg. computers/devices that only have mobile connection and many (most?) broadband home connections.
hem777··on Clocks and Causality – Ordering Events in Distributed Systems (2022)
> there are lww registers and multi-value registers

Use a single value register then in place where I said “register”.

> partition means that different subsets of nodes in a single system have different views on reality

Partition means that nodes of a (single) network are (temporarily) not connected.

In the example discussed here, blue and green were in different partitions thus had “different view” to the state. Once synchronized, their view on the state is consistent and both observe both values, blue being the latest state.

> is no longer represented in the history of v when the partition heals

Please review the above discussion again and the original article. You keep saying this but it’s shown in both that it’s is not true.

hem777··on Clocks and Causality – Ordering Events in Distributed Systems (2022)
> there was a period of time where i observed v as blue, right? that observation was invalid.

Not invalid. The observation was correct at that time and place, meaning, in the partition that it was observed. This is the P in AP.

It seems to me that you’re talking about and arguing for synchronization, that is, consensus about the values (=state), which takes the system to CP as opposed to AP.

> there is no straightforward way to module "a value"

I would recommend to look into the “Register” (CR)data structure.

hem777··on Japan Breaks with U.S. Allies, Buys Russian Oil at Prices Above Cap
> Its joining NATO only makes NATO less secure as a whole, rather than strenghtening it.

Why is that?

hem777··on Clocks and Causality – Ordering Events in Distributed Systems (2022)
> that's not true in general

Can you elaborate what do you mean by this? I was arguing that it’s possible as the original argument was “this is not possible in a real system and is only theoretical”.

> provide no meaningful consistency guarantees to users, because they allows "committed" writes to be lost

If I set the (shared) value to green and you set it to blue, what is the expected observed value? What if you set it to green and I set it blue, what is the observed value? More importantly, what is the consistency that was lost?

hem777··on Clocks and Causality – Ordering Events in Distributed Systems (2022)
> "correct primitives" do not by themselves provide a linear order of events

Review the description of Lamport Causal Clock in the article. Note that it carries “additional info” (additional to the example diagram). This “additional info” is what establishes the structure needed for total order.

> whichever concurrent updates you don't choose are lost, and that violates consistency

They’re not lost! The concurrent updates not chosen are still part of the “list of operations”, but the update to the data/value itself may not be observable if the subsequent update (the update that was sorted to be first) updates the same data/value (eg. both operations update the same key in a key-value structure). If the two operations update different data/value, then both updated values are observable. This isn’t cheating, rather it works exactly as expected: it is eventually consistent.

hem777··on Clocks and Causality – Ordering Events in Distributed Systems (2022)
We don’t assume “reliable delivery” in AP or eventually consistent systems. We assume “once all messages have been delivered…”

So if you have all messages and the two properties above, a total order can be derived.

You’re correct to say that causal order != total order as such but with the use of correct primitives, like Lamport Causal Clocks, we can get a nice and clean linear order of events :)

hem777··on Clocks and Causality – Ordering Events in Distributed Systems (2022)
> "having the instances always process [ops] in the same order" is basically not possible in any real-world network

By having 1) causal order (eg. using what the article refers to as Lamport Causal Clock) and 2) a deterministic sorting function to sort ops that happened concurrently (from the perspective of causal order), we can derive total order.

It’s absolutely possible and used.

And with those two properties, almost any data structure can be turned into a (op-based) CRDT.

That is to say, thoughtlede has it correct in their comments above.

hem777··on Instagram Is Disabling Its NFT Features
> The fact that I have not met a single knowledgable person who managed to convince me that NFTs are a good technology that solves problems that need solving in elegant ways doesn't speak about me, it speaks about the topic at hand.

It doesn’t say anything about the correct answer to the question and all about your analysis process. Keep looking, good luck!

hem777··on Domain Names as Handles in Bluesky
I think this is true if the system is global or there’s model where Sybil resistance is “here everyone, have an access to write to the database”. In a system like HN there’s value in Sybil resistance. On your Twitter feed, almost none.

So I disagree this is a non-starter, because we didn’t find a solution in the past, but rather an ideal place to start and a great space to discover new Sybil resistance mechanisms (which we have over the recent years).

hem777··on Domain Names as Handles in Bluesky
These are fantastic observations and I hope I’ll have time to get back to them in detail.

I can’t say there’s a simple solution to all of these, today, but my intuition and optimism says there’s a solution for all of these :)

hem777··on Domain Names as Handles in Bluesky
Most of us are not established public figures and many of us, I’m sure, want to keep it that way.

With keys, validation can happen in several ways: attestation by reputable orgs, reputation systems, off-band, 2FA, “Hi, I’m John”, etc etc. Discovery is also highly context dependent in that it can and should happen “in the app/system” (=whatever the context of the use case is, eg. you know me by pubkey 123, the tax office knows me by pubkey xyz).

“anonymous registration services” from the perspective of self-sovereign identity is by definition not anonymous :)

hem777··on Domain Names as Handles in Bluesky
I personally don’t want to use a domain name for everything. I want all my identities to be unique, I want an infinite number of them, that I can change between multiple ones per service and that they’re not connected to each other unless I specifically say so, and they should be fully free and permission less for me to create.

Public/private keys have or enable all those properties.

While there a many problems with how domains work today as a public goods system, domain names as identities is infinitely better than what we have now, but I think we can have it much better and domain names are one step in that self-sovereign ownership.

Page 1 of 2Next →