{"block_close_oss.c33fd1fe9c":"Community en ecosysteem","open-source-selvedge.hero-broker.no":"Nee","open-source-selvedge.a5e3c573e9":"Compileer Kera BNN-workloads voor de Selvedge-runtime.","open-source-selvedge.d5f412e831":"Kera","open-source-selvedge.fe0a091fdb":"Producten","open-source-selvedge.7dfa2cfe61":"Via een hashketen vastgelegde herkomst van systeemgebeurtenissen.","open-source-selvedge.1aa2f31ee7":"Ledger","open-source-selvedge.6cc3364a24":"Bewijs van uitvoering","open-source-selvedge.ff130daae8":"Certificaten voor redeneringsbewijzen, geen uitvoeringstranscripten.","open-source-selvedge.df84637182":"AION","open-source-selvedge.d5d6e83bf2":"Verder verkennen","open-source-selvedge.75e393a1ac":"Bekijk het project","open-source-selvedge.f9743247fa":"Lees de documentatie","open-source-selvedge.ef0fd4ccef":"Bekijk het uitvoeringsverslag","open-source-selvedge.e971b9cac2":"Selvedge verschijnt in de vierde ronde van het publicatieprogramma, na Knot en Ledger. Zodra dat gebeurt, kun je zelf een WASM-module in een sandbox uitvoeren en de bewijsenvelop afspelen.","open-source-selvedge.aa91c05f23":"Verifieer het resultaat, niet de code","open-source-selvedge.90e40d5043":"Aan de slag","open-source-selvedge.de6848949f":"Selvedge","open-source-selvedge.650fabe787":"Open Source","open-source-selvedge.0a2d263d08":"OSS / Selvedge","open-source-selvedge.9e2fe6d1ab":"Sandbox die standaard weigert","open-source-selvedge.6b5eb5323e":"Standaard weigeren","open-source-selvedge.9940fac0fc":"Uitvoeringsoppervlak voor tools via het Model Context Protocol.","open-source-selvedge.d19313d340":"Agentserver","open-source-selvedge.bb1d021694":"Verzegeld met Ed25519, SHA3-256-transcript, offline verifieerbaar.","open-source-selvedge.1ee471ad95":"Bewijsenvelop","open-source-selvedge.7e4e340a74":"Binaire neurale netwerken in Graph IR, JIT en interpreter.","open-source-selvedge.0743169b8b":"Kera-engine","open-source-selvedge.90ba359bc5":"Runtime voor het componentmodel, host voor WASI 0.2 Preview 2.","open-source-selvedge.90aecd8ec1":"Wasmtime-engine","open-source-selvedge.ed07ad60bf":"Geverifieerd oppervlak","open-source-selvedge.8ec9f20dc2":"WAT ER WORDT GELEVERD","open-source-selvedge.efe0c41bcb":"KERA","open-source-selvedge.4e946026a7":"WASM","open-source-selvedge.8e4939f0ca":"RUST 2024","open-source-selvedge.c968638a6e":"VERZEGELD UITVOERINGSVERSLAG","open-source-selvedge.201a4da5a0":"Selvedge voert niet-vertrouwde code uit in een sandbox met beperkte capabilities en legt de uitvoering vast in een verzegeld transcript. De afscherming beperkt wat de code kan aanraken; het transcript laat zien wat er werkelijk gebeurde en kan ter beoordeling opnieuw worden afgespeeld.","open-source-selvedge.3ca6c6a37b":"Standaard-deterministisch","open-source-selvedge.a55e5a1229":"Beperkte capabilities","open-source-selvedge.fca77b7e3a":"Het verzegelde uitvoeringspad","open-source-selvedge.8faedce292":"Vier runtimes","open-source-selvedge.2adb968c4a":"Dezelfde envelop","open-source-selvedge.0bf361df63":"Model Context Protocol-server voor agenttools.","open-source-selvedge.21593b807a":"MCP","open-source-selvedge.1df8dd458e":"Langlopende agentruntime met een wachtrij.","open-source-selvedge.329cb8b6ba":"Service","open-source-selvedge.8b3b7e65eb":"build, verify, run, replay. CI-vriendelijk.","open-source-selvedge.700b401ca5":"CLI","open-source-selvedge.fb075836bd":"Als crate aan je applicatie gekoppeld.","open-source-selvedge.0fd17b94c9":"Embedded","open-source-selvedge.3512486e9f":"Waar Selvedge draait","open-source-selvedge.d53f3da0a7":"HOUDING","open-source-selvedge.f28d7de3d9":"GEREGULEERD","open-source-selvedge.a21096cb07":"BNN RUNTIME","open-source-selvedge.0fcaf629eb":"PLUG-INS","open-source-selvedge.32e4cd84f3":"AGENTTOOLS","open-source-selvedge.78a8dfaf02":"Agenttools, plug-ins van derden, Kera BNN-inferentie en werk met gereguleerde data gaan allemaal via dezelfde gecontroleerde grens. Elke runtime levert dezelfde verzegelde bewijsenvelop, zodat een andere deployment het auditverhaal niet verandert.","open-source-selvedge.e9f7d0cf54":"samenkomt met gereguleerde workloads","open-source-selvedge.8d5a043fd8":"Waar niet-vertrouwde code","open-source-selvedge.14a29ba383":"Toepassingen","open-source-selvedge.f86aae8de8":"De hot path blijft bij vanilla","open-source-selvedge.224a8949e8":"Cold start, de grootste winst","open-source-selvedge.36998c51d5":"Transcripthashing, SIMD.","open-source-selvedge.41366a8f09":"1 tot 3 us","open-source-selvedge.01dbc6d47c":"SHA3-256, 1 KB","open-source-selvedge.bd0fbf08cc":"Ed25519 ondertekenen: 5-15 μs; verifiëren: 15-30 μs.","open-source-selvedge.1f3e8a79be":"10 tot 20 us","open-source-selvedge.671d8813b1":"AION-bewijs maken","open-source-selvedge.9f10fa1bbe":"Inclusief process-startup, 8-9x sneller.","open-source-selvedge.4258dd2386":"1.58 tot 1.70 ms","open-source-selvedge.919b634e80":"CLI koud, Kera JIT","open-source-selvedge.2d3bb21f5e":"Computemodule, tegenover 1187-1494 μs bij vanilla.","open-source-selvedge.bd8403776f":"15 tot 21 us","open-source-selvedge.cbb71692d2":"Koude start, API","open-source-selvedge.6cd2cd614d":"Uit BENCHMARKS.md","open-source-selvedge.48109cc196":"SELVEDGE BENCHMARKS","open-source-selvedge.d9074c5c77":"CRITERION","open-source-selvedge.7084ceb2f1":"AION 10-1000x","open-source-selvedge.b0437f28f6":"KERA JIT WARM 2x","open-source-selvedge.65e2c56be9":"COLD 62-243x","open-source-selvedge.928af32bc7":"Selvedge Wasmtime start op API-niveau 62 tot 243 keer sneller dan vanilla Wasmtime. De eerlijke afweging zit in de hot path: vanilla houdt de herhaalde call van 22 ns, terwijl het componentmodel dat het transcript produceert daar langzamer draait. Kera JIT is bij warm draaien 2 keer sneller voor graph-werk. De cijfers komen uit de repository-BENCHMARKS.md.","open-source-selvedge.da589b16da":"Kies de runtime voor de workload","open-source-selvedge.c296a030fe":"Cold start is de winst","open-source-selvedge.63c9045599":"Prestaties","open-source-selvedge.7b63c4cb70":"Per aanroep toegekend","open-source-selvedge.abf0c49614":"Standaard weigeren","open-source-selvedge.cce9f81b05":"Elke gate-beslissing vastgelegd en gehasht.","open-source-selvedge.5bcd602254":"Transcript","open-source-selvedge.7dc2595377":"max_execution_time_ns, apart van fuel.","open-source-selvedge.e909add520":"Wandkloklimiet","open-source-selvedge.214f86c442":"max_memory_bytes, 256 MiB standaard, 4 GiB plafond.","open-source-selvedge.89095dddd2":"RAM-limiet","open-source-selvedge.0f69ea8c8d":"max_instructions; bij uitputting stopt de workload netjes.","open-source-selvedge.7171161439":"Computebudget","open-source-selvedge.71f2051042":"Klok, willekeurig, bestandssysteem, netwerk, omgeving, stdio, proces, aangepast. Standaard weigeren.","open-source-selvedge.ca09c54bff":"Mogelijkheden","open-source-selvedge.f767a4311b":"Bewaking per run","open-source-selvedge.369abb529c":"BELEIDSTIERS","open-source-selvedge.64269f9bd2":"TIJD","open-source-selvedge.f4b1c471ce":"GEHEUGEN","open-source-selvedge.d8a8b58d7f":"BRANDSTOF","open-source-selvedge.1a8d3ca502":"Een default-deny capability set bewaakt elke host call over acht WASI-domeinen. Resource caps voor geheugen, fuel en tijd begrenzen op hol geslagen gedrag. Elke gate-beslissing en resource-uitlezing staat in het transcript.","open-source-selvedge.770a668e0e":"Resourcelimieten. Controle","open-source-selvedge.8a54e91228":"Mogelijkheden","open-source-selvedge.bb9cf14180":"Beleid","open-source-selvedge.26fe8fb85c":"Ontvangstbewijzen boven beweringen","open-source-selvedge.e08283960c":"Verifieer, vertrouw niet","open-source-selvedge.82de28b689":"Je hebt cryptografisch bewijs nodig van wat de workload deed, geen vertrouwen in de runtime.","open-source-selvedge.858b0d2d19":"Vertrouw de runtime, niet de workload","open-source-selvedge.ba959133c8":"Sta het bestandssysteem toe en weiger netwerktoegang, maar leg niets per aanroep vast in de audittrail.","open-source-selvedge.ff6fdd664b":"Grove toestemming of weigering","open-source-selvedge.f58bb04b13":"FP en wall-clock lekken door. Replay produceert ongeveer dezelfde output, niet exact.","open-source-selvedge.a1d55a1dad":"Replay wijkt af","open-source-selvedge.f7afaaab99":"geen ontvangstbewijs","open-source-selvedge.4677f31dd1":"Een sandbox voorkomt dat code ontsnapt. Dat bewijst niet dat de workload zich daarbinnen correct gedroeg.","open-source-selvedge.6f3134b990":"Afscherming is geen correctheid","open-source-selvedge.782cef5501":"Vier structurele gaten","open-source-selvedge.056dcf1841":"WAAROM SANDBOXES TEKORTSCHIETEN","open-source-selvedge.f1358eac2f":"GROF BELEID","open-source-selvedge.2bf9ef4df8":"NIET-DETERMINISTISCH","open-source-selvedge.1c613acc7e":"GEEN BEWIJS","open-source-selvedge.d38e80798b":"Conventionele sandboxes voorkomen dat schadelijke code ontsnapt. Ze leggen niet vast wat de code binnen de afgeschermde omgeving precies deed. Vraagt een auditor ernaar, dan heb je een bewering in plaats van bewijs.","open-source-selvedge.61920a517c":"Ze bewijzen niet","open-source-selvedge.5a88fbb30e":"Sandboxes schermen af","open-source-selvedge.8a9400005c":"Een sandbox legt niet uit hoe de run verliep","open-source-selvedge.7c46a5978b":"Selvedge legt precies vast wat er is uitgevoerd, van invoer tot uitvoer, en verzegelt elke host call.","open-source-selvedge.3e663e9467":"Selvedge is een uitvoeringstranscript","open-source-selvedge.a5be60731e":"Ledger registreert wat er in een systeem is gebeurd. Selvedge registreert welke code werd uitgevoerd.","open-source-selvedge.2c3e446b87":"Ledger registreert de herkomst van gebeurtenissen","open-source-selvedge.de792742e8":"AION geeft certificaten af voor solverstappen, niet voor uitvoeringsruns.","open-source-selvedge.ced73ef9a5":"AION is redeneringsbewijs","open-source-selvedge.0d9a7a065c":"Hoe Selvedge verschilt van AION en Ledger","open-source-selvedge.d7ffcdc87b":"Zelfde inputs plus zelfde envelope betekent zelfde output, altijd.","open-source-selvedge.7d8134cc1f":"Byte-identieke replay","open-source-selvedge.75fcf02b02":"Een vast tijdperk en een gezaaide ChaCha20-PRNG vervangen hosttijd en entropie.","open-source-selvedge.92a47286b6":"Virtuele klok, gezaaide RNG","open-source-selvedge.13c1f9cde6":"Interne berekening, opslag en accumulatie gebruiken binaire, gehele-getal-, vaste-komma- of adaptieve gehele-getal-/vaste-kommarepresentaties. Floating point wordt alleen aan een expliciete externe grens geaccepteerd en vóór intern gebruik expliciet omgezet; er is geen interne fallback met floating point. De virtuele klok blijft vast, dus replay produceert dezelfde bytes.","open-source-selvedge.a33c607874":"Geen interne floats, geen klokken","open-source-selvedge.81ec58648a":"Standaard-deterministische uitvoering","open-source-selvedge.4b447f3a6e":"De verifier speelt offline opnieuw af met alleen modulebytes en de envelop.","open-source-selvedge.17d120d8bb":"Af te spelen","open-source-selvedge.6e95469aa0":"ed25519-handtekening over de envelope-root. Geen proza.","open-source-selvedge.6e3665d85f":"Ondertekend","open-source-selvedge.bc61f0c3fe":"Elke host call wordt in de keten gehasht. Wijzigingen verbreken de keten.","open-source-selvedge.aa5cba1a92":"Aan een hashketen gekoppeld","open-source-selvedge.04c7525615":"Waarom het transcript anders is dan een log","open-source-selvedge.6db180787e":"Dezelfde flow bij elke uitvoering. Replay verloopt mechanisch.","open-source-selvedge.69aca853c2":"AION-bewijs","open-source-selvedge.ff8fc1c58a":"Verzegel","open-source-selvedge.0ae62541bc":"SHA3-keten","open-source-selvedge.873507a022":"Hash","open-source-selvedge.b1b392607d":"Uitvoeren","open-source-selvedge.3e3f943d84":"caps vastgezet","open-source-selvedge.ddcb77ff76":"Laden","open-source-selvedge.71faf343ce":"Uitvoeringstranscript","open-source-selvedge.952be7ff16":"AION-bewijs afgegeven, ondertekend met Ed25519, envelop klaar voor verzending.","open-source-selvedge.be1a4b336f":"Elke host call en het resultaat worden gehasht in een SHA3-256-keten.","open-source-selvedge.83dcc459e8":"Wasmtime of Kera voert uit in de default-deny sandbox.","open-source-selvedge.1a5c8788b4":"Module geladen, capabilities vastgezet, resource caps toegepast.","open-source-selvedge.25ec589727":"Selvedge voert WASM- of Kera-code uit in een default-deny-sandbox, hasht elke host call in een SHA3-256-transcriptketen en verpakt het resultaat in een ondertekende AION-bewijsenvelop. De envelop kan zonder de oorspronkelijke sandbox worden afgespeeld.","open-source-selvedge.fa84feaccb":"Eén verzegeld transcript","open-source-selvedge.62ee5ca76d":"Vier fasen","open-source-selvedge.a5a88d36d1":"Wat Selvedge produceert","open-source-selvedge.db2f804f0c":"Data verlaat Europa","open-source-selvedge.8799dc7cf1":"Computers die je bezit","open-source-selvedge.1d197d39c5":"Waar het draait","open-source-selvedge.79073eaaf2":"Nederland","open-source-selvedge.44ab85a252":"Herkomst","open-source-selvedge.f1be77358f":"Bewijs, geen belofte","open-source-selvedge.df5248d3cd":"Het audit-antwoord","open-source-selvedge.6eef664840":"Geen","open-source-selvedge.a95380913a":"Externe service vereist","open-source-selvedge.eba5db6f23":"Leveranciersafhankelijkheid","open-source-selvedge.4ce8c39ddd":"Waar te vinden","open-source-selvedge.3229609e15":"Uitvoeringsmodel","open-source-selvedge.cba0624eb5":"Inkoopblad","open-source-selvedge.101226ec7a":"Welke kosten en risico's het verlaagt","open-source-selvedge.7a0848ede3":"Bekijk de uitvoeringsgrens","open-source-selvedge.c01c519a99":"Selvedge is een deterministische WebAssembly-sandbox voor niet-vertrouwde code. Het manifest met toegangsrechten en het verzegelde transcript draaien op hardware die jij beheert, zodat een tegenpartij het verslag zelf kan afspelen en een geschil een opzoekvraag wordt.","open-source-selvedge.27e446d5a9":"Bewaar een verzegeld transcript","open-source-selvedge.e1cb220703":"Voer niet-vertrouwde code uit","open-source-selvedge.6ec18dcb30":"Selvedge","open-source-selvedge.993a665d35":"De baas","open-source-selvedge.c1df7f8f11":"Jij blijft","open-source-selvedge.f3101e3bb1":"Op een computer thuis","open-source-selvedge.7cb07d3c00":"Kan draaien","open-source-selvedge.576347ec82":"Europa","open-source-selvedge.15edfb4da4":"Gemaakt in","open-source-selvedge.dd80c16201":"Zelfde antwoord, elke keer","open-source-selvedge.d7e70b6e08":"Zelfde vraag","open-source-selvedge.12fee4f639":"Dus niets kan worden vervalst","open-source-selvedge.4c10b31d42":"Het verzegelt","open-source-selvedge.dcd11694fe":"Een ontvangstbewijs van elke stap","open-source-selvedge.2ab05d7411":"Het schrijft","open-source-selvedge.527d86ed84":"Houdt werk in een veilige hoek","open-source-selvedge.ca032b5844":"Houd code binnen de grenzen en bewaar het bewijs","open-source-selvedge.ce2cddc0bb":"Een zorgvuldige helper","open-source-selvedge.f8c94a3b4b":"Wat het is","open-source-selvedge.704869f20f":"In gewone woorden","open-source-selvedge.21e83f6c44":"Lees het korte verhaal","open-source-selvedge.06c805023d":"Zie wat de code heeft gedaan","open-source-selvedge.d346a6159d":"Selvedge zet een programma dat je niet zelf koos in een ruimte zonder internet, zonder route naar je bestanden en zonder iets te leren over je machine. Het laat een ontvangstbewijs achter met wat terugkwam en wat het programma mocht doen, zodat je een latere bewering kunt controleren.","open-source-selvedge.a1301435db":" schrijft alles op wat het doet","open-source-selvedge.5bd50e406e":"Een zorgvuldige helper die","open-source-selvedge.279245bb2e":"AION-stijl, ed25519 verzegeld","open-source-selvedge.5f174de1cc":"Bewijs","open-source-selvedge.ff5b90620f":"SHA3-256 per hostoproep","open-source-selvedge.98e2d78aaa":"Standaard, niet opt-in","open-source-selvedge.2956ef9ad6":"Determinisme","open-source-selvedge.cd95bf50b6":"Wasmtime-componenthost","open-source-selvedge.b3776d63ad":"Backends","open-source-selvedge.2da600bf94":"Versie","open-source-selvedge.f187484f8c":"Rust (Editie 2024)","open-source-selvedge.89b86ab0e6":"Taal","open-source-selvedge.942587e61e":"Projectblad","open-source-selvedge.d4a74b503a":"Lees de docs","open-source-selvedge.a42a770d90":"Selvedge draait code die je niet zelf schreef in een WebAssembly-componenthost zonder netwerk, bestandssysteem, omgeving of bewegende klok. Elke afgeronde run levert een record op dat een andere partij kan herhalen, plus een uitvoeringsrapport met wat de code mocht doen. Gepubliceerd onder Apache 2.0.","open-source-selvedge.92ec8c4f54":"veilige verantwoording","open-source-selvedge.722d7084a5":"Niet-vertrouwde code","open-source-selvedge.3b6a6a049d":"in een sandbox","open-source-selvedge.7d5b92b8a7":"CAP-SET","open-source-selvedge.0e2f3c1696":"BRANDSTOF","open-source-selvedge.a266fe9c4d":"GEHEUGEN","open-source-selvedge.5888675d99":"TIJD","open-source-selvedge.7dd251bbda":"AUDIT","open-source-selvedge.76b5a35739":"lib","open-source-selvedge.99bb884017":"cli","open-source-selvedge.348c658682":"svc","open-source-selvedge.10182ab855":"mcp","open-source-selvedge.4bec5a51a3":"WASM","open-source-selvedge.a21dedb8ad":"KERA","open-source-selvedge.37c66a2cfc":"AION","open-source-selvedge.53f13ae99e":"MCP","open-source-selvedge.5d0b2f6bd4":"WAARGENOMEN","open-source-selvedge.35e0d0360a":"LIVE","open-source-selvedge.0f4b423c4b":"GEMETEN","open-source-selvedge.6e10953f3e":"OPEN","open-source-selvedge.rebuild-h1-lead":"Draai code die je niet zelf schreef.","open-source-selvedge.rebuild-h1-accent":"Een kamer met een ontvangstbewijs.","open-source-selvedge.rebuild-business-h1-lead":"Draai niet-vertrouwde code op eigen hardware.","open-source-selvedge.rebuild-business-h1-accent":"Een deterministische WebAssembly-sandbox.","open-source-selvedge.close.github":"Vraag naar de release","open-source-selvedge.source.access":"Verschijnt in ronde vier","open-source-selvedge.close.title":"Verifieer het resultaat","open-source-selvedge.close.titleAccent":"niet de code","open-source-selvedge.close.panel.title":"Wat je zelf kunt controleren","open-source-selvedge.close.panel.tag":"RUNTIME","open-source-selvedge.close.panel.row.0.label":"Licentie","open-source-selvedge.close.panel.row.0.value":"Apache 2.0","open-source-selvedge.close.panel.row.1.label":"Uitvoering","open-source-selvedge.close.panel.row.1.value":"Standaard weigeren","open-source-selvedge.close.panel.row.2.label":"Determinisme","open-source-selvedge.close.panel.row.2.value":"Standaard, niet optioneel","open-source-selvedge.close.panel.row.3.label":"Transcript","open-source-selvedge.close.panel.row.3.value":"SHA3-256 per hostaanroep","open-source-selvedge.close.panel.foot":"De publicatie is gepland in tweewekelijkse rondes. De repository en de documentatie gaan tegelijk live.","oss-selvedge-business-glyph.fef8e889dc":"Uitvoeringsbeleid","oss-selvedge-business-glyph.6b5eb5323e":"Standaard weigeren","oss-selvedge-business-glyph.4ce8c39ddd":"Waar te vinden","oss-selvedge-business-glyph.eba5db6f23":"Vendor lock-in","oss-selvedge-business-glyph.6eef664840":"Geen","oss-selvedge-business-glyph.a95380913a":"Externe service","oss-selvedge-business-glyph.a92831c31f":"Gebouwd in Nederland","oss-selvedge-business-glyph.47deeb13b4":"Draait op computers van jou","oss-selvedge-business-glyph.71aec0536c":"Data blijft in Europa","oss-selvedge-business-glyph.8ac7aa173f":"Wat je krijgt","oss-selvedge-business-glyph.5c75fc26b6":"Controle en bewijs","oss-selvedge-business-glyph.df5248d3cd":"Het auditantwoord","oss-selvedge-business-glyph.74f39697ac":"Voorheen","oss-selvedge-business-glyph.b407dd020f":"Een belofte op een pagina","oss-selvedge-business-glyph.4f1d10b8b9":"Met Selvedge","oss-selvedge-business-glyph.62d62865a8":"Verzegeld bewijs","oss-selvedge-consumer-glyph.088aa1c6a5":"Bleef in de veilige hoek","oss-selvedge-consumer-glyph.cc8e3cba23":"Dee alleen wat je vroeg","oss-selvedge-consumer-glyph.f87dcfd005":"Schreef elke stap op","oss-selvedge-consumer-glyph.ce2cddc0bb":"Een zorgvuldige helper","oss-selvedge-consumer-glyph.0b5703d2a7":"De veilige hoek","oss-selvedge-consumer-glyph.135207e95b":"Het doet één klein klusje, hier, en nergens anders.","oss-selvedge-consumer-glyph.0ed7e2fe52":"Wat het deed, opgeschreven","oss-selvedge-consumer-glyph.2b11f0b541":"Verzegeld, zodat niets kan worden gewijzigd","oss-selvedge-hero-glyph.85be9bda9e":"AION-verificatie GESLAAGD.","oss-selvedge-hero-glyph.8fff039853":"JA","oss-selvedge-hero-glyph.c5616cf985":"Handtekening geldig:","oss-selvedge-hero-glyph.9e84fd1870":"Digest komt overeen:","oss-selvedge-hero-glyph.ae05be9259":"Transcript opgeslagen naar:","oss-selvedge-hero-glyph.7d1f8eca4c":"Instructies:","oss-selvedge-hero-glyph.1611baddbd":"2.097.152 bytes","oss-selvedge-hero-glyph.b6d31df01c":"Geheugen:","oss-selvedge-hero-glyph.d1fd5a4123":"Resourcegebruik:","oss-selvedge-hero-glyph.80e5667a3d":"Uitvoering succesvol voltooid in 18,4 ms","oss-selvedge-hero-glyph.ebece295c6":"transcriptketen, sha3-256","oss-selvedge-hero-glyph.859e2c0cd0":"tijd 5000 ms","oss-selvedge-hero-glyph.6137065f69":"fuel 50 M","oss-selvedge-hero-glyph.489a5f61f6":"mem 256 MiB","oss-selvedge-hero-glyph.70049344a2":"policy: default-deny","oss-selvedge-hero-glyph.9b97280973":"Deterministisch:","oss-selvedge-hero-glyph.0642f22885":"Engine:","oss-selvedge-hero-glyph.8116c74b17":"Artifact draaien:","oss-selvedge-hero-glyph.9f85876f55":"Wasmtime, componentenmodel","page-breadcrumb.c766e66518":"Kruimelpad","page-toc.7e439c353e":"Op deze pagina","section_st_a1_display-split.7c9a7c0610":"Detail","section_st_f1_cta-dark.90e40d5043":"Aan de slag","selvedge-rebuild.why":"Waarom","selvedge-rebuild.state.depth-3":"Diepte 3","selvedge-rebuild.state.depth-1":"Diepte 1","selvedge-rebuild.state.leaf":"Blad","selvedge-rebuild.state.path":"Pad","selvedge-rebuild.state.root":"Wortel","selvedge-rebuild.state.proof":"Bewijs","selvedge-rebuild.instrument.first-check":"Eerste controle","selvedge-rebuild.instrument.last-check":"Laatste controle","selvedge-rebuild.e4117a549a":"De ruimte, het ontvangstbewijs en de lijst zijn de hele belofte.","selvedge-rebuild.e04c2bbabb":"Een lijst, geen schatting.","selvedge-rebuild.f4a910b306":"Vinden en herstellen","selvedge-rebuild.d7231e00d3":"De code wordt bij elke run meegedragen.","selvedge-rebuild.de97a98b3b":"Elk ontvangstbewijs","selvedge-rebuild.4fb8981886":"Eén digest noemt de build.","selvedge-rebuild.280587dbfc":"Exact artefact","selvedge-rebuild.94bce13433":"van een ontvangstbewijs naar elke job","selvedge-rebuild.d8ad44b2fd":"Het spoor terug","selvedge-rebuild.66d0398793":"GEVONDEN, NIET GERADEN","selvedge-rebuild.f64f81f133":"ELKE JOB","selvedge-rebuild.cd30789775":"EEN CODE","selvedge-rebuild.36d917a683":"Hier komt het als een lijst. Elke job die het foutieve programma gebruikte noemt het met code, datum en korte machtigingenlijst, zodat je ziet wat geraakt is en hoe ver dat kon gaan. Als de makers niet langer worden vertrouwd, werkt de intrekking na een vaste vernieuwingsperiode en niet pas als een certificaat verloopt. De software valt onder de Apache 2.0-licentie.","selvedge-rebuild.12399078d5":"De gebruikelijke versie van dit gesprek is een schatting. Iemand zoekt uit welke release waarschijnlijk draaide, op welke dagen en voor welke mensen. Het antwoord komt als een reeks met een voorbehoud erbij. De feiten die nodig zijn om een correctie af te bakenen, moeten dan worden gereconstrueerd in plaats van uit een record te komen. Daarmee begint de correctie met een lijst die iedereen kan controleren.","selvedge-rebuild.0ccfcd0de4":"Wat er verandert","selvedge-rebuild.664ca13427":"Elke job registreert een korte code voor het exacte programma dat het werk deed. Niet de naam, niet het versienummer, maar het programma zelf. Twee builds met dezelfde naam hebben dus nog steeds verschillende codes. Blijkt dat programma later fout te zijn, dan vind je met de code elke job die het heeft aangeraakt.","selvedge-rebuild.7e5bd67fe6":"en elke job die het aanraakte","selvedge-rebuild.b27d103669":"Eén code noemt het programma","selvedge-rebuild.332f693bb9":"Wanneer er iets mis blijkt te zijn","selvedge-rebuild.e7dceacc68":"Wanneer er iets mis blijkt te zijn, noemt één code het programma.","selvedge-rebuild.9c9d8ebf4c":"Begint vanuit dezelfde schone vorm.","selvedge-rebuild.363b82b08d":"Job twee","selvedge-rebuild.5e92b89d0f":"Niets meegebracht.","selvedge-rebuild.747a74c704":"Nieuwe ruimte","selvedge-rebuild.bbd11eef60":"Gesloten met zijn registratie.","selvedge-rebuild.e429b951d7":"Job één","selvedge-rebuild.129567cb21":"voor, tijdens en na","selvedge-rebuild.456de19ceb":"Drie ruimtes","selvedge-rebuild.164f8ae614":"NIETS GEDEELD","selvedge-rebuild.16d6f8e910":"ELKE KEER","selvedge-rebuild.09d2a97782":"NIEUWE RUIMTE","selvedge-rebuild.fb65ff4141":"Het programma zelf wordt elke keer vers geladen uit zijn eigen code, en op het ontvangstbewijs staat een code voor die code. Daardoor is aantoonbaar dat wat vandaag draaide hetzelfde is als wat vorige maand draaide. Tussendoor hoopt niets zich op waar iemand later rekening mee moet houden.","selvedge-rebuild.b0f5fcfbc7":"Een nieuwe Selvedge-ruimte kost zo weinig dat één ruimte per job betaalbaar is, dus niets hoeft gedeeld te worden. Als iets echt moet worden overgedragen, gebeurt dat bewust en staat het ook als overdracht in het record. Wie later naar de run kijkt, ziet die overdracht als een afzonderlijk en controleerbaar onderdeel.","selvedge-rebuild.46cfb3934a":"In de praktijk","selvedge-rebuild.ff26c0ce98":"Elke job krijgt een nieuwe ruimte. Niets uit de vorige zit daarin: geen achtergebleven notities, geen half afgemaakt werk, geen herinnering aan wie de job vroeg. Dat klinkt vanzelfsprekend, maar is het meestal niet. Een ruimte laten staan is goedkoper dan een nieuwe bouwen, daarom houden de meeste systemen de ruimte vast en gebruiken ze haar opnieuw.","selvedge-rebuild.7f6bde3487":"voor de volgende job om te vinden","selvedge-rebuild.0813f2a065":"Er blijft niets achter","selvedge-rebuild.e0a28255b6":"Tussen de ene job en de volgende","selvedge-rebuild.ddf86350ec":"Een nieuwe ruimte is klaar voor de volgende job.","selvedge-rebuild.47d52db543":"Beleidsdigest en datum.","selvedge-rebuild.d8c67f88b7":"Lijst met benoemde mogelijkheden.","selvedge-rebuild.8d71e4a6c8":"Wat was toegestaan","selvedge-rebuild.1be6bb3160":"Uitvoer, resultaat en resourceverbruik.","selvedge-rebuild.7661e6591f":"Wat er gebeurde","selvedge-rebuild.5354effb89":"één ontvangstbewijs, twee vragen","selvedge-rebuild.bf7aa926cc":"Twee helften","selvedge-rebuild.8719258390":"OPGESCHREVEN","selvedge-rebuild.d45d38b1c1":"WAT HET KON","selvedge-rebuild.103f9176a0":"WAT HET DEED","selvedge-rebuild.fc09104420":"Niets vinden is zwak bewijs, omdat het afhangt van hoe hard iemand zocht en hoeveel tijd er voor de vergadering was. Een lijst met twee machtigingen is sterk bewijs, omdat er niets anders te vinden was.","selvedge-rebuild.e7e3ece016":"Het verandert wat er gebeurt als je later een vraag stelt. In plaats van dat iemand uitzoekt wat het programma deed en meldt dat er niets zorgwekkends was, ligt de machtigingenlijst er al en is die kort.","selvedge-rebuild.74365019ac":"De meeste records vertellen wat een programma deed. Een Selvedge-ontvangstbewijs vermeldt ook wat het mocht doen, en dat is iets anders en vaak nuttiger. Een programma dat nooit bij je bestanden mocht komen, kan er niet bij zijn geweest. Dat staat op het record, of er toen iemand toekeek of niet.","selvedge-rebuild.b418919876":"wat het deed en wat het kon","selvedge-rebuild.f0ba8e6e92":"Ontvangstbewijs in twee helften","selvedge-rebuild.a9fe3bc508":"Machtiging, opgeschreven","selvedge-rebuild.76194111ba":"Een code is geen kopie van het programma; het noemt het exacte ding dat draaide.","selvedge-rebuild.17cabedb50":"De lijst noemt waar.","selvedge-rebuild.67452c68d0":"Codes verschillen","selvedge-rebuild.c1c7f44d1c":"Het gedrag herhaalde zich.","selvedge-rebuild.0407e20f79":"Codes komen overeen","selvedge-rebuild.90586d801f":"Zelfde instellingen en artefact.","selvedge-rebuild.dba9e64b97":"Morgen draaien","selvedge-rebuild.bd7b414b53":"Input, ruimte en ontvangstbewijs.","selvedge-rebuild.c941dde6f2":"Vandaag draaien","selvedge-rebuild.7b1c52fa95":"wat de tweede run je vertelt","selvedge-rebuild.bebe96c4de":"Eén test, twee uitkomsten","selvedge-rebuild.e1c7f38f86":"JE KUNT CONTROLEREN","selvedge-rebuild.b00a146670":"ZELFDE ANTWOORD","selvedge-rebuild.64ee12f3fd":"ZELFDE MOMENT","selvedge-rebuild.698a936171":"Een programma dat de klok kan lezen kan zich vóór een deadline anders gedragen dan erna, zonder dat iemand het verschil ziet. Een klok die nooit beweegt kan niet worden bekeken, dus er is niets waarop het gedrag kan verschillen.","selvedge-rebuild.d722dbffa2":"Het geeft je een test die je zelf kunt uitvoeren. Lijkt iets niet te kloppen, draai het dan opnieuw met dezelfde invoer. Is het antwoord gelijk, dan zit het probleem ergens anders. Verschilt het, dan is er iets veranderd en noemt de vergelijking welk deel.","selvedge-rebuild.750c2096f3":"Waarom het ertoe doet","selvedge-rebuild.7768a95a4a":"De meeste programma's geven elke keer een iets ander antwoord, omdat ze naar de klok kijken, een beetje toeval gebruiken of merken hoe druk de machine is. Een programma in Selvedge kan niets daarvan. De klok binnenin staat vast en beweegt nooit, en alles wat willekeurig is begint bij elke run met hetzelfde getal. Vraag het twee keer en je krijgt hetzelfde antwoord.","selvedge-rebuild.00bc249842":"en kijk of het nog klopt","selvedge-rebuild.1797b92182":"Draai het morgen opnieuw","selvedge-rebuild.0d971150f5":"Hetzelfde antwoord twee keer","selvedge-rebuild.0ce33bc17c":"Draai het morgen opnieuw en kijk of het nog steeds overeenkomt.","selvedge-rebuild.780591dd40":"Het werk samengevouwen.","selvedge-rebuild.b454191161":"Code draaien","selvedge-rebuild.0d36ec2dc8":"Vastgelegd en voorzien van een fingerprint.","selvedge-rebuild.c35f4d270f":"Teruggegeven antwoord","selvedge-rebuild.12f6bce42d":"Geprinte uitvoer","selvedge-rebuild.e45f48ada6":"en een code voor elk","selvedge-rebuild.96a145870f":"Twee dingen","selvedge-rebuild.4056de166c":"BEIDE HEBBEN EEN FINGERPRINT","selvedge-rebuild.3736161d33":"TERUGGEGEVEN","selvedge-rebuild.07d3782dee":"UITGEPRINT","selvedge-rebuild.7362fe572e":"Het is hetzelfde idee als een zegel op een envelop, maar het doet meer. Een zegel vertelt dat de brief is geopend. Dit vertelt welke pagina veranderde, en het werkt nog steeds als de brief sindsdien twaalf keer is gekopieerd. Iedere lezer ziet hetzelfde.","selvedge-rebuild.7ffcd03942":"Die code maakt een later gesprek kort. Laat iemand je een antwoord zien dat een programma afgelopen maart gaf en wil je weten of het echt zo uit de run kwam, dan vergelijk je de codes. Ze zijn gelijk of niet, zonder grijs gebied om over te discussiëren.","selvedge-rebuild.940394c7d2":"Als de job klaar is, komen er twee dingen uit de ruimte: alles wat het programma tijdens het werk printte en het antwoord dat het uitwerkte. Niets anders. Beide krijgen bij vertrek een vingerafdruk, een korte code die volledig verandert wanneer één letter verandert.","selvedge-rebuild.690d8dd7a6":"en beide hebben een fingerprint","selvedge-rebuild.72f4db7882":"Twee dingen komen terug","selvedge-rebuild.1251cc0dd7":"Wat er terugkomt","selvedge-rebuild.8d77e5771a":"De volgende nuttige vraag is wat er terugkomt.","selvedge-rebuild.ec6f32ee39":"Geen omgeving.","selvedge-rebuild.a6252b6690":"Jouw gegevens","selvedge-rebuild.fb9f6423d9":"Geen map.","selvedge-rebuild.f1096a5b4c":"Jouw bestanden","selvedge-rebuild.4c4c583f2e":"Geen verbinding.","selvedge-rebuild.66c06c11d1":"Internet","selvedge-rebuild.ac8e062358":"Eén slot, één taak.","selvedge-rebuild.bb7841ee3e":"Jouw programma","selvedge-rebuild.8b493952a7":"en wat niet","selvedge-rebuild.4d26f69b94":"Wat er in de ruimte is","selvedge-rebuild.660cea3ce9":"EÉN SLOT","selvedge-rebuild.f1818b9fef":"NIETS TE LEZEN","selvedge-rebuild.98a2180aec":"GEEN UITWEG","selvedge-rebuild.663ab35faf":"Je bent dus niet afhankelijk van iemand die vooraf aan alles heeft gedacht. Juist dat deel faalt meestal, stil en maanden later, op een manier die niemand ziet totdat iemand anders erop wijst. De lijst maakt een gemis zichtbaar vóór het schade doet. Die lijst blijft zichtbaar.","selvedge-rebuild.0e9905b668":"Het helpt niet omdat het programma zorgvuldig wordt bewaakt. Het helpt omdat er in de ruimte niets is waarmee het mis kan gaan. Een programma kan je gegevens niet wegsturen als er geen uitweg is, en het kan je foto's niet lezen als de deur ernaartoe nooit is gebouwd.","selvedge-rebuild.22ccf30775":"Programma's die je niet zelf schreef, draaien voortdurend op je computer: een add-on, een plug-in, iets dat een assistent besloot te gebruiken om jouw vraag te beantwoorden. Selvedge zet dat programma in een eigen ruimte. Daarbinnen is geen internet, geen route naar je bestanden en niets te leren over je machine.","selvedge-rebuild.9e56594623":"en verder helemaal niets","selvedge-rebuild.6b5631ed3a":"Een ruimte met één slot erin","selvedge-rebuild.704869f20f":"In gewone woorden","selvedge-rebuild.160543d3ec":"Een ruimte kun je ook in gewone woorden uitleggen.","selvedge-rebuild.6e66049bd0":"Beslissingsketen en vijf bewerkingen.","selvedge-rebuild.140855a7dd":"Audit en agentpad","selvedge-rebuild.be90f07014":"Bewijs buiten de operator.","selvedge-rebuild.c3f6368941":"Transparantielog","selvedge-rebuild.4402f8d6f4":"Toelating en contentadres.","selvedge-rebuild.1fd6a805da":"Register","selvedge-rebuild.943a71d70f":"Inperking en deterministische uitvoering.","selvedge-rebuild.0a771c36be":"Sandbox","selvedge-rebuild.493bbfc72f":"de grens, het bewijs, de overdracht","selvedge-rebuild.6311787659":"Wat de set bevat","selvedge-rebuild.c968638a6e":"APACHE 2.0","selvedge-rebuild.d0158524ed":"JOUW HARDWARE","selvedge-rebuild.cfd1b83141":"EÉN COMPONENTENPAKKET","selvedge-rebuild.2c4db760cf":"De rest van de kosten is wat inkoop meestal vergeet: wat er gebeurt als een leverancier de voorwaarden wijzigt of stilvalt. De componentenset valt onder Apache 2.0, artefacten zijn bestanden met een contentadres, records zijn bestanden en de verificatie draait op de machine van de andere partij. Een exit is dus een kopie, geen migratie.","selvedge-rebuild.c69320538d":"De terugkerende kosten van een run worden gemeten, niet geschat: 5,26 tot 6,06 microseconden per aanroep door de grens en ruim binnen een milliseconde om op een Intel i9-13900KF een verse instantie te starten met een releasebuild, fat link-time-optimalisatie en Rust 1.85.0. Dat is alles wat het record tijdens een run kost.","selvedge-rebuild.59bd1ff6f9":"Wat het kost","selvedge-rebuild.662cd46273":"Selvedge is één componentenpakket voor de sandboxruntime, het artefactregister, het transparantielogboek, de audittrail met hashketen en de interface waarmee een agent een tool bereikt. Het draait op hardware die je beheert. Er staat niets externs op het pad van een run: geen account, geen sleutel van een leverancier en geen service die moet antwoorden voordat een job kan afronden.","selvedge-rebuild.9ce257fa8d":"en het draait op jouw hardware","selvedge-rebuild.b1c3183260":"Eén toolchain, niet vier","selvedge-rebuild.dea6811b37":"Wat het vervangt","selvedge-rebuild.86c78780e9":"Eén toolchain, op hardware die van jou is, is de commerciële afsluiting.","selvedge-rebuild.b742347ca6":"Stop of toon de geschiedenis.","selvedge-rebuild.80b0178666":"Annuleren / herkomst","selvedge-rebuild.2976625857":"Draai binnen de ruimte.","selvedge-rebuild.c65605adf5":"Aanroepen","selvedge-rebuild.084d82061e":"Laat het artefact toe.","selvedge-rebuild.fd6c3ebf7b":"Installeren","selvedge-rebuild.820fa7ff41":"Vind een benoemde mogelijkheid.","selvedge-rebuild.4827ea2271":"Ontdekken","selvedge-rebuild.38025e67e1":"één deuropening voor agenttools","selvedge-rebuild.41cb4bf6dc":"Vijf bewerkingen","selvedge-rebuild.3501cb4872":"GEEN GOEDKEURINGEN","selvedge-rebuild.9054eecb7b":"HERKOMST OP VERZOEK","selvedge-rebuild.0cd0da7fef":"EÉN DEUROPENING","selvedge-rebuild.e088784883":"Achteraf kun je de herkomst van een run opvragen. Daaromheen kun je een proces bouwen: het eigen adres van het artefact, of de handtekening klopt, welk certificaat erbij lag, onder welk beleid het draaide en waar het eerder is uitgevoerd. Deze gegevens blijven beschikbaar wanneer iemand de run later moet controleren. Je kunt ze controleren zonder de persoon te vertrouwen die de run uitvoerde.","selvedge-rebuild.c3c0f81705":"Deze controles zijn geen goedkeuringen, want voor een goedkeuring moet iemand wakker zijn. Ze vormen de deuropening. Een tool wordt via één interface met vijf bewerkingen ontdekt, geïnstalleerd en aangeroepen, zodat elke aankomst hetzelfde soort gebeurtenis is. De controle die een mogelijkheid weigert is dezelfde controle die elke andere run doorloopt, geen tweede mechanisme speciaal voor agents.","selvedge-rebuild.896b2f37be":"Het mechanisme","selvedge-rebuild.122ebb7a98":"Een assistent die aan een taak werkt kan besluiten dat hij een mogelijkheid nodig heeft die hij niet heeft, er een vinden en die binnen één stuk werk gaan gebruiken terwijl niemand meekijkt. Er was geen inkoopstap en geen beoordeling, omdat er geen moment was om die ertussen te zetten. Selvedge is de grens waar de assistent doorheen moet, en het rapport achteraf noemt welke tool arriveerde, wat die mocht en wat die deed.","selvedge-rebuild.deeaa912ba":"en het zit er al in","selvedge-rebuild.767c396612":"Niemand koos dit hulpmiddel","selvedge-rebuild.d368c82df4":"Wanneer de aanroeper een model is","selvedge-rebuild.ee26c4f440":"Wanneer de aanroeper een model is, houdt één deuropening de aankomst leesbaar.","selvedge-rebuild.9faf774569":"Pas het tariefbeleid toe.","selvedge-rebuild.ee1acfa55e":"Authenticatie","selvedge-rebuild.9bbe32214f":"Inspecteer het uitvoeringsrecord.","selvedge-rebuild.78590ea6e5":"Resourcelimiet","selvedge-rebuild.ed9390115c":"Probeer opnieuw met de aangegeven backoff.","selvedge-rebuild.f4544d56bb":"Ophaalfout","selvedge-rebuild.1455a7acb3":"Open het circuit.","selvedge-rebuild.f06cb33ba6":"Digest-mismatch","selvedge-rebuild.1be73b4878":"herstel reist mee met fouten","selvedge-rebuild.5dacd1167d":"Eén code, één volgende stap","selvedge-rebuild.3ac9292cf3":"GEEN LOGSCRAPING","selvedge-rebuild.93aaff4907":"HERSTEL VERMELD","selvedge-rebuild.dbba85fbb0":"STABIELE CODES","selvedge-rebuild.3b6e2d01ab":"Als een mogelijkheid wordt geweigerd, noemt het bericht welke soorten wel geldig zouden zijn. Dat is het verschil tussen een middag gokken en één regel aanpassen. Een fout die zijn eigen oplossing noemt is de goedkoopste documentatie die je kunt schrijven. Zo wordt corrigeren gewoon werk in plaats van een afzonderlijk onderzoek.","selvedge-rebuild.1fb184edcf":"De herstelstrategie onderscheidt gevallen die er om twee uur 's nachts op een dashboard hetzelfde uitzien. Een digest die niet klopt is niet tijdelijk, dus opnieuw proberen verspilt tijd; de bijbehorende strategie opent het circuit. Een mislukte fetch is tijdelijk en moet opnieuw worden geprobeerd.","selvedge-rebuild.2f6a307ba7":"Voor operators","selvedge-rebuild.0a5279b594":"Operationele documentatie faalt wanneer die op logtekst is geschreven, want logtekst verandert zonder dat iemand dat een wijziging noemt. Selvedge-fouten dragen daarom een stabiele code. Een runbook dat die code noemt blijft correct na een upgrade die elk bericht eromheen herschrijft. Staat er een herstelstrategie bij de code, dan hoeft het runbook er geen te raden.","selvedge-rebuild.664b90089f":"is een fout met een runbook","selvedge-rebuild.c69f009f72":"Een fout met een code","selvedge-rebuild.d8bf8f167e":"Bedienbaarheid","selvedge-rebuild.b4986d7d25":"Elke keer een verse ruimte is wat dit bewijs betaalbaar maakt.","selvedge-rebuild.05f9859c50":"Routinematige verwijdering, geen verrassingsscript.","selvedge-rebuild.9e0dece16b":"Verste kant","selvedge-rebuild.7ba8dfa987":"Vaste diepte achter het huidige bestand.","selvedge-rebuild.b850e7b847":"Oudere bestanden","selvedge-rebuild.e4eb2b5e27":"Laatste hash doorgevoerd.","selvedge-rebuild.55e313d20f":"Naad","selvedge-rebuild.4e5fd99150":"Eén object per regel.","selvedge-rebuild.2c44db0063":"Huidig bestand","selvedge-rebuild.8dae783204":"wanneer een bestand omslaat","selvedge-rebuild.888fb4bc11":"Wat blijft en wat beweegt","selvedge-rebuild.1191de056a":"TERUGVAL","selvedge-rebuild.d47c87e179":"TOKENS GEHASHT","selvedge-rebuild.eac901cef2":"ROTATIE BLIJFT STAAN","selvedge-rebuild.f7e2e2ba8c":"Mislukte pogingen worden beperkt tot vijf per minuut en vertraagd met een verdubbelende wachttijd van één, twee, vier en acht seconden. Een client die twintig keer faalt binnen tien minuten wordt geblokkeerd in plaats van alleen vertraagd. Zo wordt een gokaanval een tempo, geen uitkomst, en een incidentrapport een grafiek die niemand hoeft te duiden.","selvedge-rebuild.6736e35335":"Een andere stille fout is een credential die in een back-up blijft staan. Authenticatietokens worden vóór opslag gehasht met argon2id, zodat een gekopieerd bestand of een vastgelegd geheugenbeeld niets bevat dat als token kan worden aangeboden. De back-up kan dus worden hersteld of onderzocht zonder een bruikbaar credential prijs te geven.","selvedge-rebuild.cac3da045e":"Hoe het standhoudt","selvedge-rebuild.652f961a36":"Selvedge beheert volume zelf, niet via een script dat iemand moet onthouden te schrijven. Het log roteert zodra een bestand een grootte overschrijdt, houdt een vaste diepte oudere bestanden erachter en verwijdert bij iedere rotatie het bestand aan het verre eind. Wat overblijft, verifieert nog steeds vanaf zijn eigen anker. Wat weg is, blijft zichtbaar als breuk.","selvedge-rebuild.62615faf30":"en de keten overleeft het","selvedge-rebuild.d4854c73b7":"Rotatie behoudt het bewijs","selvedge-rebuild.d821e71a5b":"Bewaring en toegang","selvedge-rebuild.5dee0013ab":"Bewaring is een beleid, maar de keten moet het overleven.","selvedge-rebuild.8d847cbbe6":"Het logboek bevat nog steeds de oude boom.","selvedge-rebuild.0ea7b95eab":"Consistentie","selvedge-rebuild.526411c35f":"De wortel en de grootte van de boom.","selvedge-rebuild.8639df5c74":"Ondertekende boomkop","selvedge-rebuild.b67622bea2":"Het inclusiepad.","selvedge-rebuild.61922ee14e":"Broer-zus-hashes","selvedge-rebuild.11deeeb03e":"Het ding dat werd toegelaten.","selvedge-rebuild.2df596d9d9":"Artefactdigest","selvedge-rebuild.26ef63813e":"nadat een artefact aankomt","selvedge-rebuild.e33d42e6b6":"Wat een client bewaart","selvedge-rebuild.da6c5f785f":"ÉÉN ADRES","selvedge-rebuild.50419b986e":"BEWIJSBAAR BUITEN","selvedge-rebuild.80e513b0ff":"ALLEEN TOEVOEGEN","selvedge-rebuild.82c17b3462":"Voor de andere helft hoeft niemand een besluit te nemen. Eén contentadres volgt een artefact van build via de registry naar de run. Daardoor voer je een recall uit in plaats van hem alleen aan te kondigen, en werkt een ingetrokken ondertekenaar na een vernieuwingsinterval in plaats van pas op een verloopdatum.","selvedge-rebuild.0e322153c8":"Het log publiceren is een besluit dat je één keer neemt. Heb je dat gedaan, dan is jouw medewerking geen onderdeel van iemands controle meer. Zij verifiëren aanwezigheid en groei tegen een root die je publiceerde, op hun eigen machine en op een moment dat zij kiezen. Die publieke root blijft beschikbaar voor iedere controle.","selvedge-rebuild.fab7e71c01":"De garantie","selvedge-rebuild.7b85ff0b6e":"De zwakte van ieder record dat een organisatie over zichzelf bewaart, is dat die organisatie het record bewaart. Het transparantielog van Selvedge neemt dat bezwaar weg voor één nauwe vraag: wat is er binnengekomen? Een client kan een bewijs krijgen dat een specifiek artefact in het log staat én dat het log alleen is gegroeid sinds de vorige controle. Opname en de integriteit van de alleen-toevoegen-keten zijn zo controleerbaar zonder de beheerder te vertrouwen.","selvedge-rebuild.66229e2d58":"niet op vertrouwen aangenomen","selvedge-rebuild.2cc484ffbc":"Bewijzen wat je hebt toegelaten","selvedge-rebuild.4f9007e629":"Bewijs dat je niet bezit","selvedge-rebuild.cdcfb6c3c1":"Het register zegt wat er is aangekomen. Het transparantielogboek laat iemand anders het verifiëren.","selvedge-rebuild.2a95479d68":"Meegedragen met het artefact.","selvedge-rebuild.5f174de1cc":"Bewijs","selvedge-rebuild.f1f0ddab0b":"Geschikt voor het soort.","selvedge-rebuild.0449e1003d":"Naamruimte","selvedge-rebuild.2e26c5d52d":"Magische bytes, geen label.","selvedge-rebuild.e00ac23f2a":"Soort","selvedge-rebuild.54e0cdb26f":"Juiste lengte, hex en aanwezig.","selvedge-rebuild.47fdd58bee":"Digest","selvedge-rebuild.409fa246aa":"en één antwoord bij elke pull","selvedge-rebuild.112b824580":"Vier controles bij de deur","selvedge-rebuild.1858ed0f91":"OCI-DIGESTS","selvedge-rebuild.0a6780b777":"TOKENS VEREIST","selvedge-rebuild.67bf2475b1":"Toegang is een lijst met tokens die je uitgeeft en intrekt. Die worden met argon2id gehasht bewaard, zodat een gekopieerd bestand of geheugenbeeld niets bevat dat kan worden aangeboden. Mislukte pogingen zijn beperkt tot vijf per minuut met een verdubbelende wachttijd, en een client die twintig keer faalt binnen tien minuten wordt direct geblokkeerd.","selvedge-rebuild.86269212e3":"Eén contentadres identificeert een artefact vanaf publicatie, via de pull tot in het runrecord. Zo blijft de herkomst van het artefact controleerbaar: welke build, wanneer toegelaten, onder welke namespace, door welke deployment opgehaald en hoe vaak uitgevoerd. Dat adres blijft beschikbaar als de vraag maanden later terugkomt. Hetzelfde adres beantwoordt die vragen later, zonder een tweede index die je bij moet houden.","selvedge-rebuild.3d5033cca6":"Selvedge levert een registrieserver, zodat artefacten van derden op je eigen hardware landen en niet in een account bij iemand anders. De server luistert alleen op een publiek adres wanneer tokenauthenticatie aan staat, controleert vier dingen bij elke push en beantwoordt pulls met SHA-256-digests die gangbaar zijn in het ecosysteem, terwijl hij intern SHA3-256 gebruikt.","selvedge-rebuild.224f72415e":"een registry die jij beheert","selvedge-rebuild.bbd6ef38ef":"Leveranciers publiceren in","selvedge-rebuild.a0a03c8fd1":"Waar artefacten aankomen","selvedge-rebuild.d1e24e5a34":"Een resultaat is makkelijker te verdedigen als de plek waar het binnenkwam van jou is.","selvedge-rebuild.1111b73a8f":"Vraag welke input de gast zag.","selvedge-rebuild.4bed336194":"Uitvoer","selvedge-rebuild.d7f27a4216":"Inspecteer codepad of hostbuild.","selvedge-rebuild.0b645d1b65":"Brandstof","selvedge-rebuild.de86466d91":"Hetzelfde deterministische profiel.","selvedge-rebuild.c7f73bb54d":"Instellingen","selvedge-rebuild.36ffeb1c8a":"Zelfde code betekent een zinvolle vergelijking.","selvedge-rebuild.c6fe330e04":"Artefact","selvedge-rebuild.02be99bd8d":"en wat het betekent voor de volgende stap","selvedge-rebuild.a53a08f8c4":"Wat er bewoog","selvedge-rebuild.bc2cb603df":"OF HET VELD","selvedge-rebuild.4b885b786e":"ZELFDE RECORD","selvedge-rebuild.ba9ebe1f95":"ZELFDE INPUT","selvedge-rebuild.50479df67b":"Met twee records komt het antwoord diezelfde middag en noemt het een veld in plaats van een partij. Ongelijk hebben kost dan wat het hoort te kosten, en gelijk hebben bijna niets. Dat hoort in het contract te staan voordat er een eerste geschil is, niet pas tijdens zo'n geschil. Dat bewijs blijft toegankelijk.","selvedge-rebuild.db0ac7feb8":"Een mechanisch antwoord verplaatst wie de kosten van het argument draagt. Over een betwist cijfer vergelijken twee teams nu een week lang systemen die nooit vergelijkbaar waren, en vaak eindigt dat met een goodwillcredit omdat niemand kan aantonen welke kant ongelijk had en iemand het ticket moet sluiten. Geen van beide teams kan een cijfer overleggen dat de andere kant moet aanvaarden.","selvedge-rebuild.8134cbe2c9":"Een tegenpartij zegt dat het ontvangen cijfer niet klopt. Jij hebt jouw run en zij hebben die van hen. De twee Selvedge-records vergelijken is mechanisch: de vergelijking loopt alle velden af en meldt elk verschil met wat verwacht werd en wat aankwam. Het gesprek begint daardoor bij het veld dat afwijkt, niet bij de vraag wiens systeem de schuld heeft.","selvedge-rebuild.415a27590d":"veld voor veld, niet betoogd","selvedge-rebuild.651b2f8627":"Twee records vergeleken","selvedge-rebuild.a9cce5b9fe":"Een betwist resultaat","selvedge-rebuild.7c918d0343":"Een betwist resultaat is de volgende stap: twee records, veld voor veld vergeleken.","selvedge-rebuild.b457d4d9d3":"Piekgeheugen, tijd en instructies.","selvedge-rebuild.1e23ac57dd":"Resourcecijfers","selvedge-rebuild.f6c680ffb5":"De configuratie die van kracht is.","selvedge-rebuild.b44f987ea4":"Engine-hash","selvedge-rebuild.ca1f09eab2":"Het beleid dat ze heeft toegekend.","selvedge-rebuild.945db98b77":"Beleidsdigest","selvedge-rebuild.be7bd7e933":"Mogelijkheden die de run benoemt.","selvedge-rebuild.f761a72878":"Toegekende lijst","selvedge-rebuild.8be583ccfd":"beantwoord vanuit één document","selvedge-rebuild.abfa32a842":"Vier vragen","selvedge-rebuild.80935eb972":"GEDATEERD","selvedge-rebuild.c3cb9355f8":"BELEID OP DE RUN","selvedge-rebuild.506221fd52":"TOEGEKEND, GELIST","selvedge-rebuild.4d5c5b7775":"Hetzelfde rapport bevat de digests van de gecontroleerde certificaten en het verbruik aan piekgeheugen, processortijd en instructies. De vervolgvraag is altijd wat het werkelijk gebruikte, en die ligt dan al op de pagina in plaats van bij een tweede team met een andere klok en een andere definitie van het incident.","selvedge-rebuild.06d0c87ca8":"Zo wordt een discussie een opzoeking. Een toezichthouder die vraagt of een component klantgegevens kon bereiken, krijgt een antwoord met een datum in plaats van een verzekering over intentie. Het beantwoordt een historische vraag: had deze component bij deze run een route naar die gegevens?","selvedge-rebuild.5c82441a97":"Het record","selvedge-rebuild.6cdd02da63":"De lastige vraag na een incident is zelden wat software deed. Het gaat om wat de software mocht doen, en in de meeste omgevingen wordt dat antwoord samengesteld uit configuratiebestanden, deploymentgeschiedenis en iemands geheugen. Elke run van Selvedge maakt een rapport met de toegekende mogelijkheden, het beleid dat ze toekende en een hash van de instellingen die golden.","selvedge-rebuild.020ea9fcbe":"en wat het mocht","selvedge-rebuild.cd553c8839":"Elke run zegt wat het deed","selvedge-rebuild.5e367f020e":"De vraag na een incident","selvedge-rebuild.f2edf768d8":"Een record verandert de leveranciersvraag in een opzoeking.","selvedge-rebuild.0c347f9e0f":"Geen omgeving of argumentblok.","selvedge-rebuild.c701ab1556":"Erft het onze toegang?","selvedge-rebuild.f2df9d1888":"Geen directory wordt geopend.","selvedge-rebuild.e98ce49657":"Kan het een bestand achterlaten?","selvedge-rebuild.99436e239e":"Geen netwerk is standaard aanwezig.","selvedge-rebuild.1c017e2833":"Kan het gegevens verzenden?","selvedge-rebuild.68b0d04e37":"Alleen verklaarde werelden en benoemde mogelijkheden.","selvedge-rebuild.fd5147edb1":"Wat kan het aanraken?","selvedge-rebuild.51992f6040":"uitgeschreven als vier antwoorden","selvedge-rebuild.7bcd533661":"Het slechtste geval","selvedge-rebuild.80b36fb606":"VERMELD","selvedge-rebuild.a419f58f13":"SLECHTSTE GEVAL KLEIN","selvedge-rebuild.be725ffbc0":"NIETS OM TE BEREIKEN","selvedge-rebuild.eb3afa60c4":"Een component die nooit meer vroeg dan invoer en uitvoer staat volledig beschreven in één regel. Niemand hoeft die regel te onderhouden om hem een jaar later nog waar te laten zijn. Dat maakt hem bruikbaar in een document dat iemand ondertekent.","selvedge-rebuild.86f054031c":"Dit verandert de vorm van het leveranciersgesprek. De vraag gaat niet meer over of de techniek van de leverancier deugt, wat je niet kunt verifiëren en zij niet kunnen bewijzen, maar over wat het artefact kreeg toegekend. Dat staat op de run.","selvedge-rebuild.1debddb64e":"Code van een leverancier of externe bijdrager draait in Selvedge zonder netwerkverbinding, zonder geopende directory, zonder omgeving om te lezen en zonder argumenten. Die dingen worden niet tegengehouden door een regel die iemand moet onderhouden. Ze zijn er niet. Voor een risicoanalyse betekent dat dat je het worstcasescenario in één zin kunt opschrijven.","selvedge-rebuild.6be7d30a6b":"in een kamer met niets erin","selvedge-rebuild.6df473a455":"Een slecht artefact landt","selvedge-rebuild.e948526d56":"Wat het slechtste geval is","selvedge-rebuild.0b8ad471af":"De volgende vraag is wat het worstcasescenario kan bereiken.","selvedge-rebuild.a02a250db5":"Geselecteerd op het moment van werken.","selvedge-rebuild.c257ef4501":"Door de agent gekozen","selvedge-rebuild.cf63b964fc":"Niemand in de ruimte koos het.","selvedge-rebuild.2054305e05":"Transitieve afhankelijkheid","selvedge-rebuild.cdf3fea97a":"Iemand anders beheert de release.","selvedge-rebuild.8cbf4d00a5":"Directe afhankelijkheid","selvedge-rebuild.b71aa2a2b1":"Een team kan het beoordelen.","selvedge-rebuild.1ea8c912d2":"Hier geschreven","selvedge-rebuild.332edb5a4d":"en wanneer iemand het voor het laatst las","selvedge-rebuild.66cd35e493":"Vier manieren waarop het binnenkomt","selvedge-rebuild.9520a29c14":"EEN RECORD","selvedge-rebuild.2271914641":"BEREIK EERST BESLOTEN","selvedge-rebuild.e07e85e80d":"NIET BEOORDELING","selvedge-rebuild.8d05721c00":"Selvedge werkt aan de twee dingen die blijven bestaan: het bereik dat wordt bepaald voordat code binnenkomt, en het record dat blijft nadat die code vertrekt. Beide zijn beschikbaar op de dag dat een leverancier iets verstuurt dat niemand in het gebouw heeft geopend.","selvedge-rebuild.d0d23ca94c":"Elke controle op dit terrein gaat uit van een moment waarop iemand had kunnen kijken. Inkoopbeoordeling gaat daarvan uit. Codebeoordeling ook. Een tool die een agent tijdens het draaien kiest, haalt dat moment volledig weg, juist bij de workloads die het snelst groeien.","selvedge-rebuild.560556f058":"Afhankelijkheden die niemand heeft gelezen, plugins van leveranciers, integraties die op hun eigen schema updaten en nu ook tools die een model kiest op het moment dat het draait. Dat alles volledig beoordelen was nooit realistisch. Selvedge verandert de vraag van of de code betrouwbaar is naar wat die code kan bereiken en wat je er achteraf over kunt zeggen tegen iemand buiten je organisatie.","selvedge-rebuild.0d07a7b2f6":"en niemand hier las het","selvedge-rebuild.546fb9cede":"Je schreef het meeste niet","selvedge-rebuild.55874251d8":"De standaard die niemand koos","selvedge-rebuild.82b00203b9":"Wat de zes gemeen hebben is dat een vreemde de run die ze produceerden kan controleren.","selvedge-rebuild.8f4639c201":"Verzegeld tenzij verklaard.","selvedge-rebuild.a6a6318544":"GPU","selvedge-rebuild.c99a2bcf3e":"Observeren","selvedge-rebuild.316ccc52a4":"Kan geen ander proces signaleren.","selvedge-rebuild.6f8e6cc6ac":"Zijn eigen levensduur","selvedge-rebuild.30fd44bcfe":"De sleutel blijft buiten.","selvedge-rebuild.a7f47e6eb3":"Operaties, geen sleutels","selvedge-rebuild.f685d27aeb":"Een venster, geen bestandssysteem.","selvedge-rebuild.ff764e20d1":"Op prefix","selvedge-rebuild.e160d76fcb":"Een naamloze tool bestaat hier niet.","selvedge-rebuild.f1aae84762":"Alleen benoemde aanroepen","selvedge-rebuild.07e959a70b":"en wat vragen kost","selvedge-rebuild.665388e0b3":"Zes werelden","selvedge-rebuild.06348a4532":"GENOEMD PER REGEL","selvedge-rebuild.afe70011f9":"VRAGEN, NIET BEREIKEN","selvedge-rebuild.1013aec36c":"ZES WERELDEN","selvedge-rebuild.60562d5b0b":"Ook zonder de component te kennen blijft het runrecord leesbaar. Elke regel noemt de wereld waar de aanroep doorheen liep. Heeft een run twee werelden geraakt, dan zijn vier andere aantoonbaar leeg, en een beoordelaar kan dat uit het record halen in plaats van uit de broncode. Alle zes werelden vallen onder Apache 2.0 en zijn na te lezen. Ook later blijft dat leesbaar.","selvedge-rebuild.63f511d5c2":"Een enkele mogelijkheid met de naam external zou eenvoudiger zijn om te bouwen maar niet om over te redeneren, want zo'n toekenning vertelt een beoordelaar niets. Met zes werelden wordt een toekenning een leesbare zin: deze component mag twee benoemde tools aanroepen, één prefix lezen en verder niets. Het legt ook vast welke grens de operator mag toekennen.","selvedge-rebuild.819cfda982":"De externe toegang van een component bestaat uit zes benoemde werelden: tool, opslag, crypto, proces, observeren en gpu. Elke wordt vóór de start verklaard; een onverklaarde wereld is afwezig in de omgeving. Een toekenning benoemt daardoor een handeling en haar grens, geen vage belofte van externe toegang. Het ontvangstbewijs legt die toekenningen per regel vast, zodat een controleur ziet welke werelden leeg bleven zonder de hostconfiguratie te lezen.","selvedge-rebuild.cd867e3f2c":"en geen weg naar buiten","selvedge-rebuild.06850e8469":"Zes werelden om vanuit te vragen","selvedge-rebuild.09d7280b63":"Het hele mogelijkhedenoppervlak","selvedge-rebuild.4e01209ac7":"Wat de eenvoudigste vraag overblijft: wat mag een component eigenlijk vragen?","selvedge-rebuild.8539c9a9d8":"i9-13900KF, Rust 1.85.0, fat LTO.","selvedge-rebuild.07dc1b32f0":"Benoemde machine","selvedge-rebuild.04f0c3f5a6":"Ruim onder een milliseconde.","selvedge-rebuild.c79e051c62":"Verse sandbox","selvedge-rebuild.46e30f38ba":"22 tot 27 nanoseconden.","selvedge-rebuild.aff4ba3800":"Kale inbedding","selvedge-rebuild.7d8c6afdf3":"5,26 tot 6,06 microseconden.","selvedge-rebuild.a4d57a9359":"Begrensde grens","selvedge-rebuild.122385cbbe":"gemeten op één benoemde machine","selvedge-rebuild.224d7c9838":"Wat het kost en oplevert","selvedge-rebuild.cc282eac1e":"SUB-MILLISECONDE START","selvedge-rebuild.9a1cbd0dc8":"6 MICROSECONDE AANROEP","selvedge-rebuild.66b7fb60dc":"De opbrengst zit aan de andere kant. Op die hardware start een verse instantie ruim binnen een milliseconde, dus één ruimte per request is betaalbaar en niet alleen voor batchwerk. Tussen runs blijft niets hangen, en de pool die ze bedient pakt en laat een slot in constante tijd los.","selvedge-rebuild.6d37e34f65":"Gemeten op een Intel i9-13900KF, releasebuild met fat link-time optimisation, Rust 1.85.0 en honderd samples per waarde na drie seconden opwarmen. De benchmarksuite wordt met het project meegeleverd en pint de versie van alles waarmee zij vergelijkt, zodat je de cijfers op je eigen machine opnieuw kunt meten.","selvedge-rebuild.5b487a198c":"De meting","selvedge-rebuild.ce2547f5f6":"De begrensde in-process aanroep kost 5.26 tot 6.06 microseconden. Een bare embedding kost 22 tot 27 nanoseconden. Het verschil is de importcheck, vervangen klokken en het ontvangstbewijs, geprijsd per aanroep. Deze cijfers komen uit een releasebuild na opwarming, niet uit een belofte voor elke host. De benchmarksuite is aan versies gebonden en wordt met het project meegeleverd, zodat een tegenpartij de vergelijking op de eigen machine kan herhalen.","selvedge-rebuild.eb0bea042b":"en dit is het getal","selvedge-rebuild.80244c6031":"De grens heeft een prijs","selvedge-rebuild.59f208dd86":"Gemeten, met de voorwaarden","selvedge-rebuild.1c554966f5":"Dat is nog steeds je eigen bestand op je eigen schijf, dus geef de check aan iemand anders.","selvedge-rebuild.1abf201fe1":"Wat het register toeliet of ophaalde.","selvedge-rebuild.c4a1e99a74":"Artefact binnen of buiten","selvedge-rebuild.99dc0fd69a":"Wanneer een client werd afgewezen.","selvedge-rebuild.14681ed6ee":"Snelheid of grootte bereikt","selvedge-rebuild.da84e101f9":"Welke limiet welke run beëindigde.","selvedge-rebuild.c7deb27f03":"Budget uitgeput","selvedge-rebuild.dfd95f1763":"Beleid, artefact, reden en checks.","selvedge-rebuild.de43b346ca":"Mogelijkheid geweigerd","selvedge-rebuild.0860379105":"beslissingen, geen aanroepen","selvedge-rebuild.770ce14a0d":"Waar een vermelding over gaat","selvedge-rebuild.d302fd1542":"ROTATIE","selvedge-rebuild.736d1d19bd":"KETEN OVERLEEFT","selvedge-rebuild.0f26f75355":"ÉÉN REGEL, ÉÉN HASH","selvedge-rebuild.4fd6822dee":"Zo'n record is de kosten van verificatie waard, omdat mensen er echt over twisten. Niemand betwist dat een functie is aangeroepen. Ze betwisten of een component überhaupt bij klantgegevens mocht komen; dat staat hier als één regel met aan weerszijden een hash. De reden blijft dus controleerbaar.","selvedge-rebuild.52fc58dd92":"Acht soorten vermeldingen gaan erin, en elk legt een beslissing vast, geen losse aanroep. Een vermelding over beleidshandhaving bevat de beleids-id, artefactdigest, uitkomst, reden van weigering en de mogelijkheden die daarvoor zijn gecontroleerd. Ook die keuze blijft traceerbaar.","selvedge-rebuild.dc375c42ba":"Het auditbestand bevat één object per regel. Van elke regel wordt de hash berekend over de eigen inhoud en de hash ervoor; verwijder je er één, dan houdt elke volgende hash op met overeenkomen. Bij rotatie gaat de laatste hash als anker mee naar het volgende bestand. De vermeldingen beschrijven beslissingen zoals beleid, toelating, voltooide uitvoering en limieten. Een latere controleur kan zo vragen waarom een run werd geweigerd, niet alleen of er een aanroep plaatsvond.","selvedge-rebuild.dfc80074cc":"dus een verwijdering valt op","selvedge-rebuild.69fcfe76f1":"Elke regel bevat de laatste","selvedge-rebuild.aee1333814":"Het auditbestand","selvedge-rebuild.5a622af936":"Dezelfde discipline, toegepast op de beslissingen die iemand later zal betwisten.","selvedge-rebuild.fb3c095122":"Een root op een eerdere grootte.","selvedge-rebuild.a6b6f9fa4d":"Wat was de root?","selvedge-rebuild.9410fb5d00":"Een ondertekende boomkop.","selvedge-rebuild.25c2799dca":"Wat is de root?","selvedge-rebuild.37a62a6d90":"Een consistentiebewijs tussen boomgroottes.","selvedge-rebuild.39a9a225ab":"Is het veranderd?","selvedge-rebuild.13d3c8a85e":"Een kort pad van artefact naar root.","selvedge-rebuild.0791d2b497":"Zit het erin?","selvedge-rebuild.7729d17652":"zonder de operator te vertrouwen","selvedge-rebuild.12b003c6ac":"Vier vragen die het beantwoordt","selvedge-rebuild.e533871af4":"ONDERTEKEND KOP","selvedge-rebuild.e9912b4293":"CONSISTENTIE","selvedge-rebuild.830294fe4a":"INCLUSIEBEWIJS","selvedge-rebuild.15627b2116":"Juist verwijderen maakt de structuur duur. Haal één vermelding weg en elk bewijs dat iemand over dat deel van de boom bezit, stopt met valideren, op diens eigen machine, zonder dat iemand hoeft mee te kijken. Dat is precies wat een client krijgt met een inclusiebewijs in plaats van een screenshot.","selvedge-rebuild.0986321b82":"Een client bewaart de root die hij heeft gekregen, en elke latere claim over het log moet overeenkomen met de root die al in zijn bezit is. Bij die controle komt de beheerder van het log nergens aan te pas. De client houdt dat bewijs zelfstandig vast, dus de controle blijft mogelijk als de beheerder niets meer kan toevoegen.","selvedge-rebuild.af125678b5":"Elk toegelaten artefact wordt toegevoegd aan een Merkle-boom: bladeren gebruiken prefix 0x00 en interne knooppunten 0x01. Inclusie in een logboek met een miljoen vermeldingen kost twintig hashes, dus een client kan het op de eigen machine controleren. Een ondertekende boomkop legt de root op een bepaalde grootte vast; consistentiebewijzen tonen dat latere roots die root uitbreiden in plaats van vervangen. De beheerder levert bewijs, de client voert de controle uit.","selvedge-rebuild.85aa50a3b8":"aan iemand buiten het systeem","selvedge-rebuild.6f39cde263":"Het logboek bewijst zichzelf","selvedge-rebuild.0a295dee94":"Het append-only logboek","selvedge-rebuild.e77dce4f9b":"Een artefact toelaten is één ding. Later bewijzen dat je het toeliet is iets anders.","selvedge-rebuild.86aa1f5eed":"Komt met het artefact en wordt afgespeeld bij verificatie.","selvedge-rebuild.343cb675ac":"Namespace die in aanmerking komt voor dit soort.","selvedge-rebuild.709a23220f":"Naam","selvedge-rebuild.f8123c295a":"Eerste vier bytes, nooit een bestandsnaam.","selvedge-rebuild.fc92e820c6":"Juiste lengte, hexadecimaal en aanwezig.","selvedge-rebuild.6e105ad7a3":"en waar het bewijs wordt gelezen","selvedge-rebuild.1618f58781":"Waar een push op wordt gecontroleerd","selvedge-rebuild.e185f9f7d4":"BEWIJS AANWEZIG","selvedge-rebuild.e4360fc330":"MAGISCHE BYTES","selvedge-rebuild.6d4b74c092":"LOOPBACK OF TOKENS","selvedge-rebuild.33e95b7d0e":"Het bewijs wordt opnieuw afgespeeld waar het artefact wordt geverifieerd. Zo blijft de deur snel en krijgt de kern tijd om zijn werk te doen. De deur beslist per push in constante tijd over identiteit en geschiktheid; de kern beslist over de waarheid. Traagte is geen reden om een ongecontroleerd artefact toe te laten.","selvedge-rebuild.175ed9b192":"Start de registry op iets anders dan een loopback-adres terwijl tokenauthenticatie uit staat, en hij weigert te starten. Zet authenticatie aan met een lege tokenlijst, dan weigert hij dat ook. De onveilige deployment is niet beschikbaar maar wordt niet alleen afgeraden, dus een configuratiefout verschijnt dezelfde dag als startfout.","selvedge-rebuild.fc1d256e62":"Het register bepaalt het soort op basis van de eerste vier bytes van een artefact, niet de extensie of het manifest. De digest moet geldig en aanwezig zijn, de namespace moet bij dat soort passen, en een bewijs moet het vergezellen. De service weigert bovendien een onveilige start buiten loopback zonder tokenauthenticatie, en ook een lege tokenlijst wanneer authenticatie aanstaat. Identiteit, vorm en bewijs worden gecontroleerd voordat er iets wordt opgeslagen.","selvedge-rebuild.027f67dd55":"voordat er iets wordt opgeslagen","selvedge-rebuild.3d6b6cb540":"Een push krijgt vier controles","selvedge-rebuild.583ed36f97":"Toelatingscontrole","selvedge-rebuild.1914cd4ce8":"De deur beslist wat binnenkomt; de kern beslist wat waar is.","selvedge-rebuild.b69c347e7f":"Elke stap ontvangt een uitspraak.","selvedge-rebuild.c0f85d6679":"Afspelen","selvedge-rebuild.f97399239c":"Geparseerd in de kern.","selvedge-rebuild.cdde4f20ba":"Stappen","selvedge-rebuild.c318427ef6":"Pas geparseerd nadat het past.","selvedge-rebuild.6f95f40eae":"Clausulebestand","selvedge-rebuild.1e9e6eecd0":"Vergeleken met het plafond vóór het parsen.","selvedge-rebuild.a97f5adbde":"Opgegeven grootte","selvedge-rebuild.1f9c89d51e":"ALLES GECONTROLEERD, NIETS AANGENOMEN","selvedge-rebuild.e619c9a6b2":"Vier dingen rond een bewijs","selvedge-rebuild.7fa302aed3":"GROOTTE EERST","selvedge-rebuild.8a20135ce2":"AFGESPEELD","selvedge-rebuild.24704c8edc":"LRAT EN ALETHE","selvedge-rebuild.29f977d6d0":"Het werk zit in wat eromheen staat. Vertrouwenswortels worden bijgehouden in plaats van uit de store van de machine overgenomen; intrekking heeft een vernieuwingsinterval, zodat die niet op de verloopdatum wacht, en van een tijdstempeltoken wordt de handtekening gecontroleerd voordat de tijd wordt geloofd. Cosign-handtekeningen komen daarmee al controleerbaar binnen.","selvedge-rebuild.f0f219cc1b":"Een Selvedge-certificaat is bewust klein. Het is een Ed25519-handtekening over een publieke sleutel, een uitgever, een onderwerp en het begin en einde van een geldigheidsvenster. Daarom hoeft niets te worden geparseerd uit een extern formaat. De taak blijft smal: zeggen welke uitgever welk onderwerp voor welke periode tekende, zonder dat een controleur eerst een groot document hoeft uit te pakken.","selvedge-rebuild.f626b7a7da":"Onder de oppervlakte","selvedge-rebuild.776d70676a":"Een bewijs dat aan een artefact is bevestigd is een claim totdat Selvedge het afspeelt. LRAT- en Alethe-bewijzen worden stap voor stap geparseerd en gecontroleerd via een bewijskern, met een grootteplafond dat vóór het parsen geldt. Vertrouwensroots, intrekking en tijdstempels worden rond die kern gecontroleerd. De grens blijft klein genoeg voor een onafhankelijke controleur.","selvedge-rebuild.438689443c":"en stap voor stap afgespeeld","selvedge-rebuild.1ed9eb8043":"Het bewijs wordt hercontroleerd","selvedge-rebuild.77b6e89fee":"Bewijzen en certificaten","selvedge-rebuild.36ad1e8721":"Het argument gaat veel vaker over het rechterdocument, en beide komen uit één run.","selvedge-rebuild.36c042f601":"Uitvoer, fout en geretourneerde waarde completeren het record.","selvedge-rebuild.43708b1ad0":"Vastgelegde streams","selvedge-rebuild.ae61a28e3a":"Hoeveel werk er is verbruikt.","selvedge-rebuild.ed58f29743":"Instructies","selvedge-rebuild.918feb5b79":"Welk deterministisch profiel van toepassing was.","selvedge-rebuild.e5b7649e03":"Welke exacte component draaide.","selvedge-rebuild.60697a86b4":"Artefactbytes","selvedge-rebuild.a49fe57a20":"en waar elk over wordt genomen","selvedge-rebuild.aeb0956f38":"Vier van de zeven","selvedge-rebuild.07519769df":"CONSTANTE GROOTTE","selvedge-rebuild.f9c0b723ec":"HASHES, GEEN LOGS","selvedge-rebuild.7531a92ec1":"ZEVEN VELDEN","selvedge-rebuild.c35ff8c3a0":"Het uitvoeringsrapport bepaalt wat de run mocht doen. Het noemt de toegekende mogelijkheden, het beleid dat ze toekende, de gecontroleerde certificaten, een hash van de actieve instellingen en het verbruik aan piekgeheugen, processortijd en instructies. Na een incident komen die twee vragen altijd samen, en Selvedge beantwoordt ze met twee documenten in plaats van één document dat beide taken moet dragen.","selvedge-rebuild.b0b2377aff":"Het record bepaalt of dit opnieuw is gebeurd, en dat is het document waarvan mensen denken dat zij erover twisten. In de praktijk twisten zij over het andere document. Een latere lezer kan ermee vragen of hetzelfde artefact, dezelfde invoer en instellingen opnieuw dezelfde uitkomst gaven. Dat is een historische vraag over de gebeurtenis. Het uitvoeringsrapport beantwoordt de andere vraag: wat mocht de run doen?","selvedge-rebuild.e88ce1c6ea":"Na een voltooide run komen zeven velden terug, zonder proza: digests van het artefact en de instellingen, het aantal verbruikte instructies, digests van uitvoer en geretourneerde waarde en een opslagfingerprint. Het blijft klein, of de uitvoer nu één regel of een gigabyte is. Het bijbehorende uitvoeringsrapport legt capabilities, beleid, certificaten en piekgebruik van resources vast, zodat dezelfde run zegt wat er gebeurde én wat was toegestaan.","selvedge-rebuild.a219a2c15d":"en een rapport de toestemming","selvedge-rebuild.7eaab205c1":"Een record bewijst herhaling","selvedge-rebuild.13380a7edb":"Twee documenten per run","selvedge-rebuild.4077f0afa7":"Een vergelijking is alleen zo goed als het record erachter, dus lees wat het record bevat.","selvedge-rebuild.39f8833993":"Stop met lezen; de rest is ruis.","selvedge-rebuild.c0084eb27a":"Niet hetzelfde programma","selvedge-rebuild.64bc44871e":"De runs waren niet hetzelfde geconfigureerd.","selvedge-rebuild.36e1b53299":"Niet vergelijkbaar","selvedge-rebuild.9fc1d0cf34":"Zelfde werk, andere bytes eruit.","selvedge-rebuild.d136230733":"Het resultaat veranderde","selvedge-rebuild.6aee5fae01":"Een andere telling is een ander codepad.","selvedge-rebuild.de89199753":"Het werk veranderde","selvedge-rebuild.95e99b8668":"door het veld waarin het terechtkomt","selvedge-rebuild.1f218ead06":"Wat een verschil je vertelt","selvedge-rebuild.d5cf7685a8":"GEEN UITSPRAAK","selvedge-rebuild.d5a9df81ba":"VERWACHT EN GEKREGEN","selvedge-rebuild.ed299cc67f":"VELD PER VELD","selvedge-rebuild.a526ac7e2e":"Daarom wordt de invoer vastgezet en reist die met het artefact mee. Het is één regel in een procedure, maar wel de regel die bepaalt of een vergelijking een discussie sluit of een tweede opent. Een tegenpartij krijgt daarmee dezelfde bytes om opnieuw uit te voeren, zonder eerst te hoeven afspreken welke invoer met de vergelijking werd bedoeld.","selvedge-rebuild.6615580bdf":"De lijst noemt welk veld bewoog, en dat veld bepaalt de diagnose. Alleen brandstof wijst op een ander codepad. Brandstof en uitvoer samen wijzen op een gast die iets las wat de andere niet las. Een afwijkende instellingendigest betekent dat de runs nooit vergelijkbaar waren, en een afwijkende artefactdigest betekent dat het nooit hetzelfde programma was.","selvedge-rebuild.8c8effaa95":"Selvedge loopt twee records veld voor veld door en verzamelt elk verschil met verwachte en werkelijke waarden. Verschillende brandstof en verschillende uitvoer zijn verschillende problemen, en de lijst zegt welke je hebt. Een verschil wordt niet samengevat als alleen geslaagd of mislukt: een afwijkende instellingendigest wijst op andere configuratie, een afwijkende artefactdigest op een ander programma. Alleen brandstof wijst op een ander pad; brandstof plus uitvoer op een gast die een andere waarde las. De uitkomst geeft een tegenpartij een concrete volgende controle in plaats van een discussie over één boolean.","selvedge-rebuild.646770fca0":"van de velden die bewogen","selvedge-rebuild.e6e4d5cded":"Replay levert een lijst op","selvedge-rebuild.c81ee5ef6b":"Twee runs, vergeleken","selvedge-rebuild.66a522b7c5":"Daarom krijgt 'heeft het gereproduceerd' een beter antwoord dan ja.","selvedge-rebuild.d76c40f0ce":"Snelle copy-on-write of vastgepinde eerste aanraking.","selvedge-rebuild.f2c61a30e9":"Geheugeninitialisatie","selvedge-rebuild.c5abd185c9":"Gedetecteerd voor snelheid of vastgepind voor draagbaarheid.","selvedge-rebuild.72afcd7b6b":"Vectorinstructiekeuze","selvedge-rebuild.12d9267ba1":"Sterk en goedkoop, uit één zaad.","selvedge-rebuild.de76cb3681":"Beide willekeurige streams","selvedge-rebuild.aa0c86bf67":"Vaste epoch, de eerste januari 2024.","selvedge-rebuild.be2bae9c5e":"Wandklok","selvedge-rebuild.76249575a8":"(verwijderd, of eenmalig besloten)","selvedge-rebuild.32684a6c6c":"Bronnen van afwijking","selvedge-rebuild.d5b4ab5d99":"DRAGBAAR DOOR KEUZE","selvedge-rebuild.73b7c15756":"ÉÉN ZAAD","selvedge-rebuild.e5599ca3ea":"VASTE KLOK","selvedge-rebuild.3228959407":"De determinismeconfiguratie heeft een controle die laat zien welke van de twee keuzes je vasthoudt. Draagbaarheid wordt zo een besluit met een afgedrukt antwoord, niet iets wat je pas ontdekt als een tegenpartij een afwijkende replay heeft. Vastpinnen betekent dat machines met bredere vectoreenheden die niet benutten; dat is de volledige afruil.","selvedge-rebuild.95523f0e77":"Twee instellingen bepalen of hetzelfde artefact op de processor van iemand anders hetzelfde pad volgt: de keuze van vectorinstructies en de initialisatie van geheugen. Detecteren wat de machine heeft is sneller. Door beide vast te pinnen wordt de run draagbaar. Een latere controleur heeft precies dat vaste pad nodig.","selvedge-rebuild.b679796146":"Selvedge verwijdert bronnen van variatie: een vaste klok op 1 januari 2024 en beide willekeurige streams gezaaid uit één waarde. Het record bevat een digest van die configuratie, niet de waarden die eruit kwamen. Ook vectorinstructies en geheugeninitialisatie zijn expliciete keuzes: detecteren voor snelheid of vastpinnen voor draagbaarheid. Aan de hand van de profielhash weet een controleur of een replay hetzelfde processorpad hoorde te volgen voordat hij de uitvoer vergelijkt.","selvedge-rebuild.0a6cfc8fac":"geen instelling om aan te zetten","selvedge-rebuild.1fd189502e":"Determinisme is aftrekken","selvedge-rebuild.a7c3ed1772":"Aftrekken, geen configuratie","selvedge-rebuild.0c47ffb9bb":"Een instructietelling zegt alleen iets als de instructies twee keer hetzelfde waren.","selvedge-rebuild.adebd97359":"Verbruikte brandstof kan tussen runs worden afgetrokken.","selvedge-rebuild.a2daaab559":"Achteraf berekenen","selvedge-rebuild.3d67ae7992":"Het werk, niet de klok, is de begrenzing.","selvedge-rebuild.de6412fbe8":"Budget van nul","selvedge-rebuild.15dcfdda9a":"Belasting verplaatst geen telling.","selvedge-rebuild.2202f5e805":"Zelfde stoppunt","selvedge-rebuild.60440bc65a":"Geteld terwijl de gast draait; wanneer het op is, eindigt de run.","selvedge-rebuild.63309fc99a":"Instructiebudget","selvedge-rebuild.9bb4b0c4cd":"en wat tellen oplevert","selvedge-rebuild.4f84d48da3":"Eén begrenzing","selvedge-rebuild.34b96ad39f":"HETZELFDE OP ELKE CPU","selvedge-rebuild.c314cfa17b":"GEEN SECONDEN","selvedge-rebuild.62e2ede50f":"INSTRUCTIES","selvedge-rebuild.d1536b89dd":"Verbruikte instructies zijn een eigenschap van de run. Het getal staat in het record, kan worden afgetrokken en een verschil van acht op negen miljard is het eerste dat je moet bekijken als twee runs verschillen. Zo blijft het getal vergelijkbaar. Het bewijs blijft daarmee bruikbaar. Een herhaling op andere hardware geeft hetzelfde getal of noemt het veld dat verschoof.","selvedge-rebuild.7aff67a600":"Een telling is ook een getal dat twee partijen naast elkaar kunnen leggen. Verstreken tijd is een eigenschap van de machine die toevallig vrij was, en een verschil daarin zegt niets bruikbaars. Die tijd meet beschikbaarheid op de host, niet het werk dat de gast uitvoerde.","selvedge-rebuild.72426f8729":"Verstreken tijd laat hetzelfde artefact slagen op een stille machine en falen op een drukke. Selvedge begrenst een run op het aantal instructies dat de gast verbruikt, dus belasting verandert noch het antwoord, noch het punt waarop het stopt. Het budget wordt aan gastwerk toegerekend, niet aan de planning van de host. Een timeout kan een vastgelopen hostaanroep nog steeds beschermen, maar is niet het reproducerbaarheidssignaal; dat is de vastgelegde instructietelling.","selvedge-rebuild.8afbc5d594":"brandstof meet het programma","selvedge-rebuild.03b2c4da91":"Een deadline meet een host","selvedge-rebuild.21a2c5f1aa":"Wat een run daadwerkelijk stopt","selvedge-rebuild.1a78f4b9ca":"Een run die niets vraagt kan nog steeds niet eindigen, en dat vereist een andere begrenzing.","selvedge-rebuild.4a92056b30":"Alleen omdat het jokerteken is opgeschreven.","selvedge-rebuild.98f3f99f4d":"Dezelfde import met jokerteken","selvedge-rebuild.aca85a73fa":"Geweigerd in plaats van als onschadelijk aangenomen.","selvedge-rebuild.e4b5b433a2":"Een import die niets classificeert","selvedge-rebuild.15c54f0161":"Herkenbaar maar afwezig in beleid. Stopt hier.","selvedge-rebuild.f998b59fb9":"Een socketinterface","selvedge-rebuild.b0449a2f1e":"Genoemd in beleid en geleverd door de host.","selvedge-rebuild.83ae8486f7":"De standaardstromen","selvedge-rebuild.a46cc41ece":"één beleid, vier antwoorden","selvedge-rebuild.161836a8f2":"Vier verzoeken","selvedge-rebuild.366a00a60f":"FAILT GESLOTEN","selvedge-rebuild.4d3b321af0":"EERST GECONTROLEERD","selvedge-rebuild.063d13205c":"GEDECLAREERDE IMPORTS","selvedge-rebuild.0727104688":"In Selvedge wordt de onbekende situatie afgesloten, en de enige manier om die te openen is een wildcard die als eigen vermelding in het beleid staat. Een machtiging waar je niet voor koos is niet beschikbaar; een machtiging waar je wel voor koos blijft leesbaar voor wie het beleid volgend jaar bekijkt. Die keuze blijft dus controleerbaar. De grens blijft daarmee helder. Die vermelding is te beoordelen en verwijderen sluit de situatie weer.","selvedge-rebuild.4adda50d9a":"Bij onbekende gevallen geven runtimes doorgaans toe. Een onherkenbaar verzoek wordt doorgelaten omdat het waarschijnlijk onschadelijk is. Zo komt een mogelijkheid binnen waar niemand voor koos, die niemand beheert en waarvan niemand de herkomst kan dateren. Een grens blijft alleen begrijpelijk als die juist daar sluit.","selvedge-rebuild.2b1f8f5acb":"Een artefact dat Selvedge om het netwerk vraagt, start nooit. Elke gedeclareerde import wordt vóór instantiatie doorlopen vanuit alle drie de instantieconstructors; één import buiten het beleid stopt het geheel, en een import die geen beleid kan classificeren faalt gesloten, tenzij er opzettelijk een jokerteken is verleend. Die controle gebeurt voordat een moduleconstructor draait, zodat een geweigerde import geen gedeeltelijke instantie kan lekken. Importbeleid is daardoor een controleerbare startvoorwaarde en geen filter dat tijdens runtime zijn best doet.","selvedge-rebuild.c701cfb7bc":"geweigerd, niet doorgelaten","selvedge-rebuild.11f61b8cea":"Een import die het niet plaatst","selvedge-rebuild.e8f740737e":"Vóór instantiatie","selvedge-rebuild.dcd4ba984c":"Een lege kamer is de helft. Er moet ook iets weigeren voordat code start.","selvedge-rebuild.0e3f683921":"Geen directory, socket, variabele of argument.","selvedge-rebuild.b31a999e3e":"Al het andere","selvedge-rebuild.b6f2a8aafd":"De bytes van de aanroeper, of een gesloten stroom.","selvedge-rebuild.ed8d995cba":"Standaardinvoer","selvedge-rebuild.619f80b0f4":"Dezelfde behandeling. Niets wordt elders geschreven.","selvedge-rebuild.be84302eb7":"Standaardfout","selvedge-rebuild.28c9b400a8":"Vastgelegd, verwerkt en teruggegeven met de run.","selvedge-rebuild.f0c190c767":"Standaarduitvoer","selvedge-rebuild.80384c78ce":"en wat er niet doorheen gaat","selvedge-rebuild.fbda0b5df6":"Wat door de muur gaat","selvedge-rebuild.f317e1836d":"GEEN OMGEVING","selvedge-rebuild.772e054092":"GEEN BESTANDEN","selvedge-rebuild.61176d0dd1":"GEEN NETWERK","selvedge-rebuild.a4a4906f32":"Aftrekken blijft staan. Er is geen bestandssysteem om toe te kennen en geen netwerk om achter te houden, dus het slechtste geval rust op de vorm van de host en niet op iemand die een lijst correct houdt. Een Selvedge-beleid dat je zelf opstelt, begint met een lege lijst van mogelijkheden en vereist determinisme. De ruimte die het beschrijft is de ruimte die je krijgt.","selvedge-rebuild.d987579a1c":"Een lijst met machtigingen is iets dat iemand onderhoudt, en alles wat onderhoud nodig heeft gaat schuiven. Eén release opent een directory voor een diagnose, die diagnose is tegen de zomer klaar, de vermelding blijft bestaan en twee jaar later kan niemand meer zeggen wat ervan afhangt. Juist die geschiedenis bewaart een record voor een latere controle.","selvedge-rebuild.a97c12e865":"Vraag wat een component binnen Selvedge kan bereiken en het antwoord is drie stromen: standaarduitvoer, standaardfout en standaardinvoer wanneer de aanroeper die levert. Geen directory, socket, omgevingsvariabele of argumentenlijst wordt geopend; de host heeft geen codepad dat er een opent.","selvedge-rebuild.d9a7d95854":"en er is geen vierde","selvedge-rebuild.dcfbae366b":"Een gast krijgt drie stromen","selvedge-rebuild.fbadde4854":"Wat een gast krijgt","selvedge-rebuild.fallback-record":"vastlegging","selvedge-rebuild.fallback-check":"controle","selvedge-rebuild.illustrative":"ILLUSTRATIEF","selvedge-rebuild.declared":"gedeclareerd","selvedge-rebuild.recorded":"geregistreerd","selvedge-rebuild.banner.eng-unchecked.kicker":"Wat een geslaagde controle betekent","selvedge-rebuild.banner.eng-unchecked.title":"Elke claim wordt getest","selvedge-rebuild.banner.eng-unchecked.body":"Een artefact kan claims over zichzelf bevatten: een handtekeningdigest, een certificaatdigest, een beleidsdigest. Elke claim belooft dat iets is gecontroleerd en heeft materiaal nodig voordat die controle kan plaatsvinden. Selvedge eist dat materiaal. Verwijst een artefact naar een handtekeningdigest, dan verifieert Selvedge die zodra de losse handtekening en sleutel zijn meegeleverd. Bij een certificaatdigest gebeurt dat zodra een ketenverifieerder beschikbaar is. Een beleidsdigest verifieert op het beleidsbewuste pad dat hem heeft voortgebracht.","selvedge-rebuild.banner.eng-unchecked.instrument-header":"Controlebewijs","selvedge-rebuild.banner.eng-unchecked.instrument-tag":"Vereist","selvedge-rebuild.banner.eng-unchecked.verdict-label":"Uitkomst","selvedge-rebuild.banner.eng-unchecked.item-1-label":"Handtekeningdigest","selvedge-rebuild.banner.eng-unchecked.item-1-body":"Losse handtekening en sleutel.","selvedge-rebuild.banner.eng-unchecked.item-2-label":"Certificaatdigest","selvedge-rebuild.banner.eng-unchecked.item-2-body":"Controle van de certificaatketen.","selvedge-rebuild.banner.eng-unchecked.item-3-label":"Beleidsdigest","selvedge-rebuild.banner.eng-unchecked.item-3-body":"Pad waarop het beleid wordt gecontroleerd.","selvedge-rebuild.banner.eng-unchecked.item-4-label":"Artefact + instellingen","selvedge-rebuild.banner.eng-unchecked.item-4-body":"Gecontroleerd bij elke run.","selvedge-rebuild.banner.eng-unchecked.verdict":"Een geslaagde controle dekt elke claim in het artefact.","selvedge-rebuild.banner.eng-unchecked.footline":"Daarom betekent een Selvedge-controle hetzelfde voor de partij die hem ontvangt.","selvedge-rebuild.banner.eng-handover.kicker":"Wie het bewijs vasthoudt","selvedge-rebuild.banner.eng-handover.title":"Je geeft vier dingen door","selvedge-rebuild.banner.eng-handover.body":"Een andere partij heeft vier dingen nodig om een Selvedge-run te controleren: de artefactbytes, de invoer die die bytes kregen, de deterministische instellingen van de run en het record dat de run opleverde. Het zijn alle vier bestanden. Ze reizen mee via het kanaal dat jullie al gebruiken en geen ervan is een credential, licentie of endpoint.","selvedge-rebuild.banner.eng-handover.instrument-header":"Overdracht voor replay","selvedge-rebuild.banner.eng-handover.instrument-tag":"Offline","selvedge-rebuild.banner.eng-handover.verdict-label":"Onafhankelijke controle","selvedge-rebuild.banner.eng-handover.item-1-label":"Artefactbytes","selvedge-rebuild.banner.eng-handover.item-1-body":"Wat er draaide.","selvedge-rebuild.banner.eng-handover.item-2-label":"Invoer aangeleverd","selvedge-rebuild.banner.eng-handover.item-2-body":"Waar het op draaide.","selvedge-rebuild.banner.eng-handover.item-3-label":"Instellingen","selvedge-rebuild.banner.eng-handover.item-3-body":"Hoe het draaide.","selvedge-rebuild.banner.eng-handover.item-4-label":"Jouw record","selvedge-rebuild.banner.eng-handover.item-4-body":"Waarmee je vergelijkt.","selvedge-rebuild.banner.eng-handover.verdict":"Hun machine, hun vergelijking, hun controle.","selvedge-rebuild.banner.eng-handover.footline":"Vier bestanden, en de partij die twijfelt is de partij die controleert.","selvedge-rebuild.banner.biz-blind.kicker":"Waarom een testresultaat overdraagbaar is","selvedge-rebuild.banner.biz-blind.title":"Het kan niet zien","selvedge-rebuild.banner.biz-blind.body":"Software die haar omgeving kan zien, kan zich er anders in gedragen. Een component die de datum leest, kan zich voor een afkapmoment anders gedragen dan erna. Een component die de machinenaam leest, kan voorzichtig zijn in een testomgeving en slordig in productie. Wie kan zien hoe druk de machine is, kan alleen een kortere weg nemen wanneer niemand waarschijnlijk meet. Daarom bewijst een acceptatietest alleen dat je die test ooit hebt doorstaan.","selvedge-rebuild.banner.biz-blind.instrument-header":"Leverancieronafhankelijke grens","selvedge-rebuild.banner.biz-blind.instrument-tag":"Gelijke voorwaarden","selvedge-rebuild.banner.biz-blind.verdict-label":"Overdraagbare uitkomst","selvedge-rebuild.banner.biz-blind.compare-left":"Geen blijvende afhankelijkheid","selvedge-rebuild.banner.biz-blind.compare-right":"Zichtbare grens","selvedge-rebuild.banner.biz-blind.item-1-label":"Geen account","selvedge-rebuild.banner.biz-blind.item-1-body":"Draait op je eigen hardware.","selvedge-rebuild.banner.biz-blind.item-2-label":"Geen leverancierssleutel","selvedge-rebuild.banner.biz-blind.item-2-body":"Niets wordt voor je bewaard.","selvedge-rebuild.banner.biz-blind.item-3-label":"Geen verborgen netwerk","selvedge-rebuild.banner.biz-blind.item-3-body":"Geen route om gegevens weg te sturen.","selvedge-rebuild.banner.biz-blind.item-4-label":"Een gedateerd rapport","selvedge-rebuild.banner.biz-blind.item-4-body":"De toestemming staat vastgelegd.","selvedge-rebuild.banner.biz-blind.verdict":"Een testresultaat is overdraagbaar omdat de grens hetzelfde is.","selvedge-rebuild.banner.biz-blind.footline":"Het bewijs is nuttig voor iemand die niet in de ruimte was.","selvedge-rebuild.banner.biz-fresh.kicker":"Waarom isolatie betaalbaar is","selvedge-rebuild.banner.biz-fresh.title":"Elke keer een verse ruimte","selvedge-rebuild.banner.biz-fresh.body":"Isolatie wordt meestal gerantsoeneerd. Een schone omgeving opzetten kost genoeg om die voor batchwerk te bewaren, terwijl interactief werk een langlevend proces deelt waarin het residu van de ene job de beginvoorwaarde van de volgende wordt. Dat is een kostenbesluit dat bijna altijd als architectuur wordt gepresenteerd.","selvedge-rebuild.banner.biz-fresh.instrument-header":"Volgorde van een nieuwe ruimte","selvedge-rebuild.banner.biz-fresh.instrument-tag":"Per verzoek","selvedge-rebuild.banner.biz-fresh.verdict-label":"Operationele conclusie","selvedge-rebuild.banner.biz-fresh.item-1-label":"Koude start","selvedge-rebuild.banner.biz-fresh.item-1-body":"Ruim binnen een milliseconde.","selvedge-rebuild.banner.biz-fresh.item-2-label":"Eén verzoek","selvedge-rebuild.banner.biz-fresh.item-2-body":"Eén ruimte.","selvedge-rebuild.banner.biz-fresh.item-3-label":"Geen overdracht","selvedge-rebuild.banner.biz-fresh.item-3-body":"Niets wordt standaard gedeeld.","selvedge-rebuild.banner.biz-fresh.item-4-label":"Eén record","selvedge-rebuild.banner.biz-fresh.item-4-body":"De overdracht is expliciet.","selvedge-rebuild.banner.biz-fresh.verdict":"Isolatie is betaalbaar als de ruimte goedkoop is.","selvedge-rebuild.banner.biz-fresh.footline":"Een leverancier kan niet de ruimte van gisteren erven.","selvedge-rebuild.banner.con-code.kicker":"Wat het ontvangstbewijs vastlegt","selvedge-rebuild.banner.con-code.title":"Een code is geen kopie","selvedge-rebuild.banner.con-code.body":"Een ontvangstbewijs dat bewees wat uit je brief kwam, zou de brief zelf moeten bewaren. Dat is precies waar mensen terecht naar vragen. Selvedge bewaart geen kopie. Het bewaart een korte code die uit de inhoud wordt berekend, en die berekening werkt maar één kant op.","selvedge-rebuild.banner.con-code.instrument-header":"Overzicht van het ontvangstbewijs","selvedge-rebuild.banner.con-code.instrument-tag":"Replaybaar","selvedge-rebuild.banner.con-code.verdict-label":"Wat het bewijst","selvedge-rebuild.banner.con-code.item-1-label":"Het artefact","selvedge-rebuild.banner.con-code.item-1-body":"Welk programma.","selvedge-rebuild.banner.con-code.item-2-label":"De invoer","selvedge-rebuild.banner.con-code.item-2-body":"Wat het zag.","selvedge-rebuild.banner.con-code.item-3-label":"De instellingen","selvedge-rebuild.banner.con-code.item-3-body":"Welke instellingen vastlagen.","selvedge-rebuild.banner.con-code.item-4-label":"Het ontvangstbewijs","selvedge-rebuild.banner.con-code.item-4-body":"Waarmee je vergelijkt.","selvedge-rebuild.banner.con-code.verdict":"Een korte code benoemt de run, maar is geen broncode.","selvedge-rebuild.banner.con-code.footline":"Het relevante bewijs is klein genoeg om door te geven.","selvedge-rebuild.internal-numeric":"Interne berekening, opslag en accumulatie gebruiken binaire, gehele-getal-, vaste-komma- of adaptieve gehele-getal-/vaste-kommarepresentaties. Floating point wordt alleen aan een expliciete externe grens geaccepteerd en vóór intern gebruik expliciet omgezet. Er is geen interne fallback met floating point.","selvedge-rebuild.banner.eng-unchecked.title-accent":"voor er een pass wordt gegeven","selvedge-rebuild.banner.eng-unchecked.body-second":"Vraag Selvedge te verifiëren zonder dat materiaal en de fout noemt precies wat ontbreekt. Zo wordt een onverifieerbaar artefact een verzoek om het ene stuk dat de vraag zou beslechten. Daardoor behoudt een groen resultaat van Selvedge overal dezelfde betekenis: elke claim van het artefact is met dezelfde tooling getest op materiaal dat iemand daadwerkelijk heeft aangeleverd.","selvedge-rebuild.banner.eng-handover.title-accent":"en zij controleren zelf","selvedge-rebuild.banner.eng-handover.body-second":"Zij draaien de replay op hun eigen machine met hun eigen build van de tooling. Wat terugkomt is hun lijst met afwijkende velden, niet jouw geruststelling over de run. Daarvoor hoeft geen account, sleutel die wij beheren of dienst van ons bereikbaar te zijn. De controle werkt dus tijdens een storing, op een air-gapped netwerk en jaren nadat de run de kwestie beslechtte. Daarom kun je een Selvedge-record in een contract opnemen: de partij die je niet vertrouwt, voert de verificatie zelf uit.","selvedge-rebuild.banner.biz-blind.title-accent":"dat het wordt getest","selvedge-rebuild.banner.biz-blind.body-second":"Een component in Selvedge heeft niets om te lezen. De klok blijft op één vast moment staan. Er is geen omgeving, geen argumenten, geen netwerk en geen directory. De component kan dus geen machinenaam of deploymentlabel vinden en niet zien of dit de vierde run is of de eerste. Gedrag kan nog steeds van de invoer afhangen, daarom leg je die vast en geef je die mee. Het kan niet afhangen van de datum, host of gelegenheid. Een run die zich tijdens acceptatie goed gedroeg, gedraagt zich in november op de hardware van een andere partij dus hetzelfde.","selvedge-rebuild.banner.biz-fresh.title-accent":"omdat een ruimte goedkoop is","selvedge-rebuild.banner.biz-fresh.body-second":"Op de machine waarop het project meet, staat een verse Selvedge-instantie ruim binnen een milliseconde klaar. Daarmee past één instantie per verzoek binnen het budget van vrijwel elk interactief proces. Niets gaat mee tenzij je het bewust overdraagt, en die overdracht staat als overdracht op het record. Commercieel gezegd: de fout van één job blijft de fout van één job en de blast radius is een ruimte die niet meer bestaat.","selvedge-rebuild.banner.con-code.title-accent":"van het ding waar hij uit komt","selvedge-rebuild.banner.con-code.body-second":"Dezelfde inhoud levert altijd dezelfde code op, dus de code laat zien dat niets is veranderd. Je kunt de code niet terugrekenen naar de inhoud, dus hij vertelt niets over wat die inhoud was. Een run over een rapport van tweehonderd pagina's laat een record van dezelfde grootte achter als een run over één regel. Geen van beide records bewaart een woord van de inhoud. Je kunt het record tien jaar bewaren of geven aan iemand die het document niet mag lezen, zonder iets weg te geven.","selvedge-rebuild.banner.eng-record.kicker":"Wat na de run overblijft","selvedge-rebuild.banner.eng-record.title":"Het proces is gestopt","selvedge-rebuild.banner.eng-record.title-accent":"het record geeft nog antwoord","selvedge-rebuild.banner.eng-record.body":"Een voltooide run moet meer achterlaten dan een vinkje. Selvedge bindt het artefact, de invoer, de deterministische instellingen en het gemeten werk aan de uitvoer die terugkwam. Het record bestaat uit velden, niet uit een verslag dat achteraf is geschreven.","selvedge-rebuild.banner.eng-record.body-second":"Een tweede machine kan hetzelfde materiaal opnieuw afspelen en het record veld voor veld vergelijken. Wijkt het artefact, de instelling, het aantal instructies of de uitvoer af, dan krijgt het verschil een vaste plaats in plaats van een algemene melding dat de run niet kon worden gereproduceerd.","selvedge-rebuild.banner.eng-record.instrument-header":"Runbewijs","selvedge-rebuild.banner.eng-record.instrument-tag":"Veld voor veld","selvedge-rebuild.banner.eng-record.verdict-label":"Replaycontrole","selvedge-rebuild.banner.eng-record.item-1-label":"Artefact + invoer","selvedge-rebuild.banner.eng-record.item-1-body":"Het materiaal dat binnenkwam.","selvedge-rebuild.banner.eng-record.item-2-label":"Deterministische instellingen","selvedge-rebuild.banner.eng-record.item-2-body":"De voorwaarden die voor de run vastlagen.","selvedge-rebuild.banner.eng-record.item-3-label":"Verbruikte instructies","selvedge-rebuild.banner.eng-record.item-3-body":"Het gemeten werk.","selvedge-rebuild.banner.eng-record.item-4-label":"Digests van de uitvoer","selvedge-rebuild.banner.eng-record.item-4-body":"De waarden die je vergelijkt.","selvedge-rebuild.banner.eng-record.verdict":"Wijkt een replay af, dan wijst het record het afwijkende veld aan.","selvedge-rebuild.banner.eng-record.footline":"Het bewijs blijft bruikbaar nadat het proces dat het opleverde is verdwenen.","selvedge-rebuild.banner.biz-transfer.kicker":"Wat een leverancierswissel overleeft","selvedge-rebuild.banner.biz-transfer.title":"Behoud het resultaat","selvedge-rebuild.banner.biz-transfer.title-accent":"zonder de leverancier","selvedge-rebuild.banner.biz-transfer.body":"Een acceptatieresultaat is kwetsbaar als alleen de leverancier het kan reproduceren. Het account, de dienst en de interne testomgeving worden dan onderdeel van het bewijs, ook als het contract zegt dat de software zelf overdraagbaar is.","selvedge-rebuild.banner.biz-transfer.body-second":"Selvedge maakt de overdracht concreet. Bewaar het artefact, de toegestane bevoegdheden, de vaste runinstellingen en het ontstane record. Een vervangende leverancier of onafhankelijke beoordelaar kan die bestanden op een eigen machine opnieuw afspelen zonder de oorspronkelijke leverancier iets te laten heropenen.","selvedge-rebuild.banner.biz-transfer.instrument-header":"Onafhankelijke overdracht","selvedge-rebuild.banner.biz-transfer.instrument-tag":"Geen blijvende dienst","selvedge-rebuild.banner.biz-transfer.verdict-label":"Commerciële grens","selvedge-rebuild.banner.biz-transfer.item-1-label":"Geaccepteerd artefact","selvedge-rebuild.banner.biz-transfer.item-1-body":"De exacte bytes uit de geslaagde test.","selvedge-rebuild.banner.biz-transfer.item-2-label":"Set machtigingen","selvedge-rebuild.banner.biz-transfer.item-2-body":"De grens waarbinnen de run draaide.","selvedge-rebuild.banner.biz-transfer.item-3-label":"Replaypakket","selvedge-rebuild.banner.biz-transfer.item-3-body":"Bestanden die de afnemer kan bewaren.","selvedge-rebuild.banner.biz-transfer.item-4-label":"Onafhankelijke vergelijking","selvedge-rebuild.banner.biz-transfer.item-4-body":"Geen leveranciersaccount nodig.","selvedge-rebuild.banner.biz-transfer.verdict":"Het bewijs gaat over zonder een nieuwe afhankelijkheid te creëren.","selvedge-rebuild.banner.biz-transfer.footline":"De partij die het resultaat ontvangt, krijgt ook de middelen om het te controleren.","slv-visuals.chrome-meta":"uitvoeringsrecord","slv-visuals.661f13bc63":"GECONTROLEERD","slv-visuals.bd63dd7336":"gedeclareerd, begrensd, vastgelegd","slv-visuals.ac7ff256a6":"SEL","slv-visuals.44fd37f1ed":"Deze wereld is verzegeld omdat deze niet was gedeclareerd.","slv-visuals.74140b3eb3":"De bewerking overschrijdt de kamer terwijl de sleutel buiten blijft.","slv-visuals.a95af2a207":"Eén padprefix is zichtbaar; dit is een venster, geen bestandssysteem.","slv-visuals.5265953d8b":"Twee benoemde tools zijn aanwezig; een onbenoemde tool heeft geen opening.","slv-visuals.43dd7aa30b":"De verleende lijst staat met datum in het rapport, dus de beoordeling wordt een opzoeking.","slv-visuals.bcaf2f4bea":"De mogelijkheid werd vóór de run geweigerd, met een stabiele code voor het runbook.","slv-visuals.f712baba7f":"Brandstof en uitvoer bewogen: vraag welke invoer de gast daadwerkelijk ontving.","slv-visuals.f4435747db":"Brandstof bewoog terwijl uitvoer stilstond: inspecteer de hostbuild of het codepad.","slv-visuals.e18ddd4366":"Geen bevindingen. Vastpinnen benut geen bredere vectoreenheden, en draagbaarheid is nu een bewuste keuze.","slv-visuals.f1a5ccbfac":"Twee bevindingen: vectorselectie en geheugeninitialisatie hangen af van de host.","slv-visuals.interaction.choices":"Selvedge visuele keuzes","slv-visuals.interaction.sequence":"Selvedge volgorde","slv-visuals.interaction.worlds":"Selvedge-werelden voor mogelijkheden","slv-visuals.interaction.tree":"Selvedge-boom voor inclusiebewijs","slv-visuals.fallback-hash":"hash","slv-visuals.fallback-fact":"feit","slv-visuals.control.detect":"detectie-afgestemd","slv-visuals.control.pinned":"gepind","slv-visuals.control.fuel":"brandstof bewogen","slv-visuals.control.output":"brandstof + uitvoer bewogen","slv-visuals.control.policy":"beleid geweigerd","slv-visuals.control.allowed":"beleid toegestaan","slv-visuals.control.tool":"hulpprogramma","slv-visuals.control.storage":"opslag","slv-visuals.control.crypto":"crypto","slv-visuals.control.observe":"observeren","toc-rail.f5cbdf6bfb":"Inhoud"}
