Breek de gebruikersruimte niet!

By Bitcoin Tijdschrift - 3 maanden geleden - Leestijd: 5 minuten

Breek de gebruikersruimte niet!

“Mauro, Zwijg! Het is een bug, in de kernel. Hoe lang bent u al beheerder? En heb je *nog steeds* de eerste regel van kernelonderhoud niet geleerd? Als een verandering ertoe leidt dat gebruikersprogramma's kapot gaan, is dat een bug in de kernel. We geven NOOIT de gebruikersprogramma's de schuld. Hoe moeilijk kan dit zijn om te begrijpen?” -Linus Torvalds

Breek de gebruikersruimte niet. Dit is de gouden regel van Linus Torvald voor de ontwikkeling van de Linux-kernel. Voor degenen onder u die dit lezen en niet bekend zijn met de aard van Linux, of besturingssystemen in het algemeen: de kernel is het hart en de ziel van een besturingssysteem. De kernel beheert feitelijk de hardware, verplaatst bits tussen opslag en RAM, tussen het RAM en de CPU terwijl de dingen worden berekend, en alle kleine apparaten en onderdelen van de eigenlijke computer die op hardwareniveau moeten worden bestuurd.

Elke applicatie of programma dat voor een besturingssysteem is geschreven, moet communiceren met de kernel. Wanneer je Photoshop of Telegram downloadt, komt alles wat dat programma doet neer op het aanroepen van de kernel. "Hé kernel, neem wat ik zojuist heb getypt, verwerk het en stuur het via een netwerkverbinding naar de server." "Hé kernel, neem de kleurverschuiving die ik naar deze toonhoogte heb gemaakt, haal het uit het RAM en stuur het naar de CPU om het aan te passen, en plaats het dan terug in het RAM."

When the kernel is changed, in a somewhat similar fashion to Bitcoin, the chief goal of developers is to ensure that existing applications that assume a specific way to interact with the kernel do not break because of a change to the kernel. Sounds very familiar to Bitcoin and the necessity to maintain backwards compatibility for network consensus upgrades doesn’t it?

"Ernstig. Hoe moeilijk is deze regel om te begrijpen? We breken de gebruikersruimte vooral niet met TOTAL CRAP. Ik ben boos, omdat je hele e-mail zo vreselijk verkeerd was, en de patch die de boel kapot maakte zo overduidelijk onzin was. De hele patch is ongelooflijk kapotte shit. Het voegt een krankzinnige foutcode toe (ENOENT), en omdat het zo krankzinnig is, voegt het een paar plaatsen toe om het te repareren ("ret == -ENOENT ? -EINVAL : ret").

Het feit dat je vervolgens *excuses* probeert te maken voor het breken van de gebruikersruimte, en de schuld geeft aan een extern programma dat *vroeger* werkte, is gewoon beschamend. Zo werken wij niet. Repareer je verdomde 'compliancetool', want die is duidelijk kapot. En verbeter uw benadering van kernelprogrammering.’ -Linus Torvalds

Linux is een van de belangrijkste, zo niet het belangrijkste, open source-project ter wereld. Android draait op Linux, de helft van de backend-infrastructuur (zo niet veel meer) draait op Linux. Ingebouwde systemen die allerlei geautomatiseerde dingen op de achtergrond van je leven besturen, waarvan je niet eens zou overwegen dat ze op Linux draaien. De wereld draait letterlijk op Linux. Het heeft misschien niet de desktop overgenomen zoals veel autistische Linux-gebruikers wilden zien gebeuren, maar het at stilletjes bijna al het andere op de achtergrond op zonder dat iemand het merkte.

All of these applications and programs people use in the course of their daily lives depend on the assumption that Linux kernel developers will not break backwards compatibility in new versions of the kernel to allow their applications to continue functioning. Otherwise, anything running applications must continue using older versions of the kernel or take on the burden of altering their applications to interact with a breaking change in the kernel.

Bitcoin’s most likely path to success is a very similar road, simply becoming a platform that financial applications and tools are built on top of in such a way that most people using them won’t even realize or consider that “Bitcoin ate the world.” In a similar vein to Linux, that golden rule of “Don’t break userspace” applies tenfold. The problem is the nature of Bitcoin as a distributed consensus system, rather than a single local kernel running on one person’s machine, wildly changes what “breaking userspace” means.

It’s not just developers that can break userspace, users themselves can break userspace. The entire last year of Ordinals, Inscriptions, and BRC-20 tokens should definitively demonstrate that. This offers a very serious quandary when looking at the mantra of “Don’t break userspace” from the point of view of developers. As much as many Bitcoiners in this space do not like Ordinals, and are upset that their own use cases are being disrupted by the network traffic Ordinals users are creating, beide groepen zijn gebruikers.

So how do developers confront this problem? One group of users is breaking userspace for another group of users. To enact a change that prevents the use of Ordinals or Inscriptions explicitly violates the mandates of don’t break userspace. I’m sure people want to say “Taproot broke userspace!” in response to this dilemma, but it did not. Taproot activation, and the allowance for witness data to be as large as the entire blocksize, did not break any pre-existing applications or uses built on top of Bitcoin. All it did was open the door for new applications and use cases.

Dus wat doen we hier? Proberen om mensen die inscripties maken of rangtelwoorden verhandelen te filteren of te doorbreken door een consensusverandering, is een fundamentele schending van de stelregel van ‘maak de gebruikersruimte niet kapot’. Door niets te doen kan een klasse gebruikers de gebruikersruimte van een andere klasse gebruikers verbreken. Er is fundamenteel geen oplossing voor dit probleem, behalve het schenden van de gouden regel, of het implementeren van functionaliteit die de klasse van gebruikers wiens gebruikersruimte nu kapot is, in staat stelt zich aan te passen aan de nieuwe realiteit van het netwerk en een levensvatbare versie van hun applicaties en gebruik te behouden. gevallen.

Not breaking the userspace of Bitcoin is of critical importance for its continued success and functionality, but it is not as simple as “don’t change anything.” Dynamic changes in user behavior, that require no change to the actual protocol itself, can have the same effect at the end of the day as a breaking change to the protocol. Are developers supposed to pick and choose which applications’ userspace is broken to maintain that of another application? I would say no, and go further to say that anyone advocating for such behavior from developers is demanding them to act irresponsibly and in a way that harms users of the system. So what is the answer here?

There is no answer except to push forward and continue adding improvements to the protocol that allow applications being broken by the behavior of certain users to function in the presence of emergent changes in users’ behavior. Otherwise, you are asking developers to throw out the golden rule and effectively play kingmakers in regards to what use cases are viable to build on top of Bitcoin.

Als we die weg inslaan, wat doen we hier dan eigenlijk? Ik kan je op dat moment niet vertellen wat we aan het doen zijn, maar ik kan je wel vertellen dat het geen gedistribueerd en neutraal systeem meer is.

Originele bron: Bitcoin Magazine