Bump version to 0.2.7 to add upstream share card features
This commit is contained in:
28 files changed
+255
-254
No files matched your search
@@ -24,21 +24,21 @@ export const v0_2_0 = VersionInfo.of({
|
||||
version: '0.2.0:3',
|
||||
releaseNotes: {
|
||||
en_US:
|
||||
'The configurable stratum ports now set only the external (network-facing) port. The in-container ports are fixed, so changing a port no longer leaves a duplicate Stratum interface behind and no longer restarts the pool — connected miners stay connected. StartOS 0.4.0 port: stratum is exposed directly on the LAN as a raw TCP interface (no more router forwards or simpleproxy), Bitcoin Core is reached over the internal network bridge with cookie authentication, and settings moved from Config to the Configure action. Existing settings, found-block history, and the stratum TLS certificate are migrated automatically.',
|
||||
'The configurable stratum ports now set only the external (network-facing) port. The in-container ports are fixed, so changing a port no longer leaves a duplicate Stratum interface behind and no longer restarts the pool, connected miners stay connected. StartOS 0.4.0 port: stratum is exposed directly on the LAN as a raw TCP interface (no more router forwards or simpleproxy), Bitcoin Core is reached over the internal network bridge with cookie authentication, and settings moved from Config to the Configure action. Existing settings, found-block history, and the stratum TLS certificate are migrated automatically.',
|
||||
es_ES:
|
||||
'Los puertos stratum configurables ahora solo definen el puerto externo (de red). Los puertos internos del contenedor son fijos, así que cambiar un puerto ya no deja una interfaz Stratum duplicada ni reinicia el pool: los mineros conectados siguen conectados. Adaptación a StartOS 0.4.0: Stratum se expone directamente en la LAN como interfaz TCP, Bitcoin Core se alcanza a través del puente de red interno con autenticación por cookie, y la configuración se movió a la acción Configurar. Los ajustes existentes, el historial de bloques y el certificado TLS se migran automáticamente.',
|
||||
de_DE:
|
||||
'Die konfigurierbaren Stratum-Ports legen jetzt nur noch den externen (netzseitigen) Port fest. Die containerinternen Ports sind fix, sodass eine Portänderung keine doppelte Stratum-Schnittstelle hinterlässt und den Pool nicht neu startet — verbundene Miner bleiben verbunden. Portierung auf StartOS 0.4.0: Stratum wird direkt im LAN als TCP-Schnittstelle bereitgestellt, Bitcoin Core wird über die interne Netzwerk-Bridge mit Cookie-Authentifizierung erreicht, und die Einstellungen sind in die Aktion „Konfigurieren“ umgezogen. Bestehende Einstellungen, Blockhistorie und das TLS-Zertifikat werden automatisch migriert.',
|
||||
'Die konfigurierbaren Stratum-Ports legen jetzt nur noch den externen (netzseitigen) Port fest. Die containerinternen Ports sind fix, sodass eine Portänderung keine doppelte Stratum-Schnittstelle hinterlässt und den Pool nicht neu startet, verbundene Miner bleiben verbunden. Portierung auf StartOS 0.4.0: Stratum wird direkt im LAN als TCP-Schnittstelle bereitgestellt, Bitcoin Core wird über die interne Netzwerk-Bridge mit Cookie-Authentifizierung erreicht, und die Einstellungen sind in die Aktion „Konfigurieren“ umgezogen. Bestehende Einstellungen, Blockhistorie und das TLS-Zertifikat werden automatisch migriert.',
|
||||
pl_PL:
|
||||
'Konfigurowalne porty stratum ustawiają teraz wyłącznie port zewnętrzny (sieciowy). Porty wewnątrz kontenera są stałe, więc zmiana portu nie pozostawia już zduplikowanego interfejsu Stratum ani nie restartuje puli — podłączeni górnicy pozostają połączeni. Port na StartOS 0.4.0: Stratum jest udostępniany bezpośrednio w sieci LAN jako interfejs TCP, Bitcoin Core jest osiągany przez wewnętrzny mostek sieciowy z uwierzytelnianiem cookie, a ustawienia przeniesiono do akcji Konfiguruj. Istniejące ustawienia, historia bloków i certyfikat TLS są migrowane automatycznie.',
|
||||
'Konfigurowalne porty stratum ustawiają teraz wyłącznie port zewnętrzny (sieciowy). Porty wewnątrz kontenera są stałe, więc zmiana portu nie pozostawia już zduplikowanego interfejsu Stratum ani nie restartuje puli, podłączeni górnicy pozostają połączeni. Port na StartOS 0.4.0: Stratum jest udostępniany bezpośrednio w sieci LAN jako interfejs TCP, Bitcoin Core jest osiągany przez wewnętrzny mostek sieciowy z uwierzytelnianiem cookie, a ustawienia przeniesiono do akcji Konfiguruj. Istniejące ustawienia, historia bloków i certyfikat TLS są migrowane automatycznie.',
|
||||
fr_FR:
|
||||
'Les ports stratum configurables ne définissent plus que le port externe (côté réseau). Les ports internes au conteneur sont fixes : changer un port ne laisse plus d’interface Stratum en double et ne redémarre plus le pool — les mineurs connectés le restent. Portage vers StartOS 0.4.0 : Stratum est exposé directement sur le LAN comme interface TCP, Bitcoin Core est atteint via le pont réseau interne avec authentification par cookie, et les réglages ont migré vers l’action Configurer. Les réglages existants, l’historique des blocs et le certificat TLS sont migrés automatiquement.',
|
||||
'Les ports stratum configurables ne définissent plus que le port externe (côté réseau). Les ports internes au conteneur sont fixes : changer un port ne laisse plus d’interface Stratum en double et ne redémarre plus le pool, les mineurs connectés le restent. Portage vers StartOS 0.4.0 : Stratum est exposé directement sur le LAN comme interface TCP, Bitcoin Core est atteint via le pont réseau interne avec authentification par cookie, et les réglages ont migré vers l’action Configurer. Les réglages existants, l’historique des blocs et le certificat TLS sont migrés automatiquement.',
|
||||
},
|
||||
migrations: {
|
||||
up: async ({ effects }) => {
|
||||
// Migrate from the 0.3.5.1 wrapper: its config.yaml lives on the main
|
||||
// volume under start9/. The SQLite DB (data/kamado.db), TLS certs
|
||||
// (tls/) and the ckpool volume carry over untouched — only the config
|
||||
// (tls/) and the ckpool volume carry over untouched, only the config
|
||||
// format changed.
|
||||
const configYaml: LegacyConfig | undefined = await readFile(
|
||||
'/media/startos/volumes/main/start9/config.yaml',
|
||||
|
||||
@@ -8,13 +8,13 @@ export const v0_2_1 = VersionInfo.of({
|
||||
es_ES:
|
||||
'Stratum TLS ahora funciona por internet sin configurar ningún certificado: adjunte un dominio de clearnet a la interfaz Stratum (TLS) y StartOS emitirá un certificado de Let’s Encrypt que Kamado sirve automáticamente. El certificado autofirmado se sigue sirviendo en el mismo puerto para los mineros de su red local, elegido por conexión, así que ambos casos funcionan a la vez sin un segundo puerto. El interruptor TLS en Configurar ahora se llama «Stratum TLS (red local)» y cubre solo el certificado autofirmado, y la interfaz TLS aparece siempre, de modo que puede adjuntarle un dominio sin activar antes el TLS local. El candado del panel ahora indica, al pasar el ratón, cuál de los dos certificados usa cada minero.',
|
||||
de_DE:
|
||||
'Stratum-TLS funktioniert jetzt ohne Zertifikatseinrichtung über das Internet: Hängen Sie eine Clearnet-Domain an die Schnittstelle Stratum (TLS) an, und StartOS stellt ein Let’s-Encrypt-Zertifikat aus, das Kamado automatisch bereitstellt. Das selbstsignierte Zertifikat wird weiterhin auf demselben Port für Miner im lokalen Netzwerk bereitgestellt, pro Verbindung ausgewählt — beides funktioniert gleichzeitig, ohne zweiten Port. Der TLS-Schalter unter „Konfigurieren“ heißt jetzt „Stratum-TLS (lokales Netzwerk)“ und betrifft nur das selbstsignierte Zertifikat, und die TLS-Schnittstelle wird immer angezeigt, sodass Sie ihr eine Domain zuweisen können, ohne zuvor lokales TLS zu aktivieren. Das Schloss-Symbol im Dashboard zeigt beim Daraufzeigen, welches der beiden Zertifikate ein Miner verwendet.',
|
||||
'Stratum-TLS funktioniert jetzt ohne Zertifikatseinrichtung über das Internet: Hängen Sie eine Clearnet-Domain an die Schnittstelle Stratum (TLS) an, und StartOS stellt ein Let’s-Encrypt-Zertifikat aus, das Kamado automatisch bereitstellt. Das selbstsignierte Zertifikat wird weiterhin auf demselben Port für Miner im lokalen Netzwerk bereitgestellt, pro Verbindung ausgewählt, beides funktioniert gleichzeitig, ohne zweiten Port. Der TLS-Schalter unter „Konfigurieren“ heißt jetzt „Stratum-TLS (lokales Netzwerk)“ und betrifft nur das selbstsignierte Zertifikat, und die TLS-Schnittstelle wird immer angezeigt, sodass Sie ihr eine Domain zuweisen können, ohne zuvor lokales TLS zu aktivieren. Das Schloss-Symbol im Dashboard zeigt beim Daraufzeigen, welches der beiden Zertifikate ein Miner verwendet.',
|
||||
pl_PL:
|
||||
'Stratum TLS działa teraz przez internet bez konfigurowania certyfikatu: podłącz domenę clearnet do interfejsu Stratum (TLS), a StartOS wystawi certyfikat Let’s Encrypt, który Kamado udostępnia automatycznie. Certyfikat samopodpisany jest nadal udostępniany na tym samym porcie dla górników w sieci lokalnej, wybierany dla każdego połączenia, więc oba przypadki działają jednocześnie bez drugiego portu. Przełącznik TLS w akcji Konfiguruj nazywa się teraz „Stratum TLS (sieć lokalna)” i dotyczy wyłącznie certyfikatu samopodpisanego, a interfejs TLS jest zawsze widoczny, więc można podłączyć do niego domenę bez wcześniejszego włączania lokalnego TLS. Kłódka w panelu pokazuje po najechaniu kursorem, którego z dwóch certyfikatów używa dany górnik.',
|
||||
fr_FR:
|
||||
'Le stratum TLS fonctionne désormais sur internet sans aucune configuration de certificat : rattachez un domaine clearnet à l’interface Stratum (TLS) et StartOS émet un certificat Let’s Encrypt que Kamado présente automatiquement. Le certificat auto-signé reste présenté sur le même port pour les mineurs de votre réseau local, choisi connexion par connexion, si bien que les deux fonctionnent simultanément sans second port. Le commutateur TLS dans Configurer s’appelle maintenant « Stratum TLS (réseau local) » et ne concerne que le certificat auto-signé, et l’interface TLS est toujours affichée, ce qui permet d’y rattacher un domaine sans activer d’abord le TLS local. Le cadenas du tableau de bord indique désormais au survol lequel des deux certificats chaque mineur utilise.',
|
||||
},
|
||||
// No data migration in either direction. store.json is unchanged — the TLS
|
||||
// No data migration in either direction. store.json is unchanged, the TLS
|
||||
// toggle deliberately kept its `tlsEnabled` key when its scope narrowed to
|
||||
// the local network, so existing settings carry over untouched. The new
|
||||
// unconditional stratum-tls binding is registered by setInterfaces on init,
|
||||
|
||||
@@ -4,15 +4,15 @@ export const v0_2_2 = VersionInfo.of({
|
||||
version: '0.2.2:1',
|
||||
releaseNotes: {
|
||||
en_US:
|
||||
'Let’s Encrypt now actually works. Certificates for a public domain are issued and served by StartOS itself on a new "Stratum (TLS, Public Domain)" interface — attach a domain to it and the Let’s Encrypt option appears, which it never did before. The previous approach could not work: StartOS only issues certificates for endpoints it terminates TLS for, so miners on a domain were served the self-signed certificate instead and rejected it. The plaintext and local self-signed TLS endpoints are unchanged, so nothing already working needs touching, and the dashboard padlock still names which certificate each miner used. The port fields are now named “Preferred”, because StartOS assigns a different port when the one you ask for is already taken — when that happens you now get a notification naming both numbers, and the Pool Status action lists the ports actually in use. Pool Status now also lists any domain attached to an interface with the port it is published on.',
|
||||
'Let’s Encrypt now actually works. Certificates for a public domain are issued and served by StartOS itself on a new "Stratum (TLS, Public Domain)" interface, attach a domain to it and the Let’s Encrypt option appears, which it never did before. The previous approach could not work: StartOS only issues certificates for endpoints it terminates TLS for, so miners on a domain were served the self-signed certificate instead and rejected it. The plaintext and local self-signed TLS endpoints are unchanged, so nothing already working needs touching, and the dashboard padlock still names which certificate each miner used. The port fields are now named “Preferred”, because StartOS assigns a different port when the one you ask for is already taken, when that happens you now get a notification naming both numbers, and the Pool Status action lists the ports actually in use. Pool Status now also lists any domain attached to an interface with the port it is published on.',
|
||||
es_ES:
|
||||
'Let’s Encrypt ya funciona de verdad. Los certificados para un dominio público los emite y sirve StartOS en una nueva interfaz «Stratum (TLS, dominio público)»: adjúntele un dominio y aparecerá la opción de Let’s Encrypt, que antes nunca salía. El enfoque anterior no podía funcionar: StartOS solo emite certificados para los extremos en los que él mismo termina TLS, así que a los mineros conectados por dominio se les servía el certificado autofirmado y lo rechazaban. Los extremos de texto plano y de TLS autofirmado local no cambian, así que no hay que tocar nada que ya funcione, y el candado del panel sigue indicando qué certificado usó cada minero. Los campos de puerto ahora se llaman «preferido», porque StartOS asigna otro puerto cuando el solicitado ya está ocupado: en ese caso recibirá una notificación con ambos números, y la acción Estado del pool lista los puertos realmente en uso. Estado del pool ahora también lista los dominios adjuntos a cada interfaz con el puerto en el que se publican.',
|
||||
de_DE:
|
||||
'Let’s Encrypt funktioniert jetzt wirklich. Zertifikate für eine öffentliche Domain stellt und liefert StartOS selbst über die neue Schnittstelle „Stratum (TLS, öffentliche Domain)“ — hängen Sie eine Domain daran an, und die Let’s-Encrypt-Option erscheint, was zuvor nie der Fall war. Der bisherige Ansatz konnte nicht funktionieren: StartOS stellt Zertifikate nur für Endpunkte aus, deren TLS es selbst terminiert, sodass Miner über eine Domain das selbstsignierte Zertifikat erhielten und es ablehnten. Die Klartext- und die lokale selbstsignierte TLS-Schnittstelle bleiben unverändert, es muss also nichts angefasst werden, was bereits funktioniert, und das Schloss im Dashboard benennt weiterhin das verwendete Zertifikat. Die Port-Felder heißen jetzt „bevorzugt“, weil StartOS einen anderen Port zuweist, wenn der gewünschte bereits belegt ist — in diesem Fall erhalten Sie jetzt eine Benachrichtigung mit beiden Nummern, und die Aktion „Pool-Status“ listet die tatsächlich verwendeten Ports auf. „Pool-Status“ listet jetzt auch jede an eine Schnittstelle angehängte Domain mit dem Port auf, unter dem sie veröffentlicht wird.',
|
||||
'Let’s Encrypt funktioniert jetzt wirklich. Zertifikate für eine öffentliche Domain stellt und liefert StartOS selbst über die neue Schnittstelle „Stratum (TLS, öffentliche Domain)“, hängen Sie eine Domain daran an, und die Let’s-Encrypt-Option erscheint, was zuvor nie der Fall war. Der bisherige Ansatz konnte nicht funktionieren: StartOS stellt Zertifikate nur für Endpunkte aus, deren TLS es selbst terminiert, sodass Miner über eine Domain das selbstsignierte Zertifikat erhielten und es ablehnten. Die Klartext- und die lokale selbstsignierte TLS-Schnittstelle bleiben unverändert, es muss also nichts angefasst werden, was bereits funktioniert, und das Schloss im Dashboard benennt weiterhin das verwendete Zertifikat. Die Port-Felder heißen jetzt „bevorzugt“, weil StartOS einen anderen Port zuweist, wenn der gewünschte bereits belegt ist, in diesem Fall erhalten Sie jetzt eine Benachrichtigung mit beiden Nummern, und die Aktion „Pool-Status“ listet die tatsächlich verwendeten Ports auf. „Pool-Status“ listet jetzt auch jede an eine Schnittstelle angehängte Domain mit dem Port auf, unter dem sie veröffentlicht wird.',
|
||||
pl_PL:
|
||||
'Let’s Encrypt wreszcie działa. Certyfikaty dla domeny publicznej wystawia i udostępnia sam StartOS w nowym interfejsie „Stratum (TLS, domena publiczna)” — podłącz do niego domenę, a pojawi się opcja Let’s Encrypt, której wcześniej nigdy nie było. Poprzednie podejście nie mogło działać: StartOS wystawia certyfikaty wyłącznie dla punktów końcowych, dla których sam kończy TLS, więc górnicy łączący się przez domenę otrzymywali certyfikat samopodpisany i go odrzucali. Punkty końcowe nieszyfrowany i lokalny TLS samopodpisany pozostają bez zmian, więc nie trzeba ruszać niczego, co już działa, a kłódka w panelu nadal wskazuje użyty certyfikat. Pola portów nazywają się teraz „preferowany”, ponieważ StartOS przydziela inny port, gdy żądany jest już zajęty — w takim przypadku otrzymasz powiadomienie z obydwoma numerami, a akcja Stan puli wypisuje faktycznie używane porty. Stan puli wypisuje teraz również domeny podłączone do każdego interfejsu wraz z portem, na którym są publikowane.',
|
||||
'Let’s Encrypt wreszcie działa. Certyfikaty dla domeny publicznej wystawia i udostępnia sam StartOS w nowym interfejsie „Stratum (TLS, domena publiczna)”, podłącz do niego domenę, a pojawi się opcja Let’s Encrypt, której wcześniej nigdy nie było. Poprzednie podejście nie mogło działać: StartOS wystawia certyfikaty wyłącznie dla punktów końcowych, dla których sam kończy TLS, więc górnicy łączący się przez domenę otrzymywali certyfikat samopodpisany i go odrzucali. Punkty końcowe nieszyfrowany i lokalny TLS samopodpisany pozostają bez zmian, więc nie trzeba ruszać niczego, co już działa, a kłódka w panelu nadal wskazuje użyty certyfikat. Pola portów nazywają się teraz „preferowany”, ponieważ StartOS przydziela inny port, gdy żądany jest już zajęty, w takim przypadku otrzymasz powiadomienie z obydwoma numerami, a akcja Stan puli wypisuje faktycznie używane porty. Stan puli wypisuje teraz również domeny podłączone do każdego interfejsu wraz z portem, na którym są publikowane.',
|
||||
fr_FR:
|
||||
'Let’s Encrypt fonctionne enfin. Les certificats pour un domaine public sont émis et présentés par StartOS lui-même sur une nouvelle interface « Stratum (TLS, domaine public) » : rattachez-y un domaine et l’option Let’s Encrypt apparaît, ce qui n’était jamais le cas auparavant. L’approche précédente ne pouvait pas fonctionner : StartOS n’émet des certificats que pour les points de terminaison dont il termine lui-même le TLS, si bien que les mineurs passant par un domaine recevaient le certificat auto-signé et le rejetaient. Les points de terminaison en clair et TLS auto-signé local sont inchangés, rien de ce qui fonctionne déjà n’est à modifier, et le cadenas du tableau de bord indique toujours quel certificat chaque mineur a utilisé. Les champs de port s’appellent désormais « préféré », car StartOS attribue un autre port lorsque celui demandé est déjà pris — dans ce cas vous recevez une notification indiquant les deux numéros, et l’action État du pool liste les ports réellement utilisés. État du pool liste désormais aussi les domaines rattachés à chaque interface avec le port sur lequel ils sont publiés.',
|
||||
'Let’s Encrypt fonctionne enfin. Les certificats pour un domaine public sont émis et présentés par StartOS lui-même sur une nouvelle interface « Stratum (TLS, domaine public) » : rattachez-y un domaine et l’option Let’s Encrypt apparaît, ce qui n’était jamais le cas auparavant. L’approche précédente ne pouvait pas fonctionner : StartOS n’émet des certificats que pour les points de terminaison dont il termine lui-même le TLS, si bien que les mineurs passant par un domaine recevaient le certificat auto-signé et le rejetaient. Les points de terminaison en clair et TLS auto-signé local sont inchangés, rien de ce qui fonctionne déjà n’est à modifier, et le cadenas du tableau de bord indique toujours quel certificat chaque mineur a utilisé. Les champs de port s’appellent désormais « préféré », car StartOS attribue un autre port lorsque celui demandé est déjà pris, dans ce cas vous recevez une notification indiquant les deux numéros, et l’action État du pool liste les ports réellement utilisés. État du pool liste désormais aussi les domaines rattachés à chaque interface avec le port sur lequel ils sont publiés.',
|
||||
},
|
||||
// No data migration. The new `stratumPublicTlsPort` store field materializes
|
||||
// from its `.catch()` default on first read, and the new interface is
|
||||
|
||||
@@ -4,19 +4,19 @@ export const v0_2_3 = VersionInfo.of({
|
||||
version: '0.2.3:0',
|
||||
releaseNotes: {
|
||||
en_US:
|
||||
'The best-share page can now show you the proof of work itself. A new "Show PoW" button opens the block header behind your best share, drawn as a block with every field in place — version, previous block, merkle root, time, bits and nonce — next to the raw 80 bytes the miner hashed. Press Verify and the page replays the whole verification in front of you: it rebuilds the merkle root from the coinbase transaction and its branch hashes, pads the header into message blocks, runs the real SHA-256 compression rounds, hashes the result a second time, reverses the bytes and compares the hash against the share and network targets. Every value comes from your own share and is computed in your browser, so you can confirm the pool is telling the truth without having to trust it — and the raw header plus a one-line terminal command are there to check it elsewhere. Headers are only recorded from this version onward: a best share found earlier cannot be reconstructed, so until a new record is set the page shows the best share since the update and says so. Restarting the service no longer produces a burst of rejected shares either. Miners were being sent work before they were told which difficulty to work at, and every miner was reset to the pool’s starting difficulty, so the first shares after each restart came back rejected. The difficulty is now sent first, miners resume at the difficulty they had already been tuned to instead of starting over, and work they had already begun is accepted rather than rejected. Pool Status also reports the state of best-share header capture.',
|
||||
'The best-share page can now show you the proof of work itself. A new "Show PoW" button opens the block header behind your best share, drawn as a block with every field in place, version, previous block, merkle root, time, bits and nonce, next to the raw 80 bytes the miner hashed. Press Verify and the page replays the whole verification in front of you: it rebuilds the merkle root from the coinbase transaction and its branch hashes, pads the header into message blocks, runs the real SHA-256 compression rounds, hashes the result a second time, reverses the bytes and compares the hash against the share and network targets. Every value comes from your own share and is computed in your browser, so you can confirm the pool is telling the truth without having to trust it, and the raw header plus a one-line terminal command are there to check it elsewhere. Headers are only recorded from this version onward: a best share found earlier cannot be reconstructed, so until a new record is set the page shows the best share since the update and says so. Restarting the service no longer produces a burst of rejected shares either. Miners were being sent work before they were told which difficulty to work at, and every miner was reset to the pool’s starting difficulty, so the first shares after each restart came back rejected. The difficulty is now sent first, miners resume at the difficulty they had already been tuned to instead of starting over, and work they had already begun is accepted rather than rejected. Pool Status also reports the state of best-share header capture.',
|
||||
es_ES:
|
||||
'La página de mejores participaciones ya puede mostrarle la prueba de trabajo en sí. Un nuevo botón «Mostrar PoW» abre la cabecera de bloque de su mejor participación, dibujada como un bloque con cada campo en su sitio —versión, bloque anterior, raíz de Merkle, hora, bits y nonce—, junto a los 80 bytes en bruto que el minero pasó por el hash. Pulse Verificar y la página reproduce toda la verificación ante usted: reconstruye la raíz de Merkle a partir de la transacción coinbase y sus hashes de rama, rellena la cabecera en bloques de mensaje, ejecuta las rondas de compresión reales de SHA-256, vuelve a aplicar el hash al resultado, invierte los bytes y compara el hash con el objetivo de la participación y con el de la red. Todos los valores proceden de su propia participación y se calculan en su navegador, así que puede comprobar que el pool dice la verdad sin tener que confiar en él; además dispone de la cabecera en bruto y de una orden de terminal de una sola línea para verificarlo por fuera. Las cabeceras solo se registran a partir de esta versión: una mejor participación encontrada antes no puede reconstruirse, así que hasta que se establezca un nuevo récord la página muestra la mejor participación desde la actualización y lo indica. Reiniciar el servicio tampoco provoca ya una ráfaga de participaciones rechazadas. A los mineros se les enviaba trabajo antes de indicarles con qué dificultad debían trabajar, y todos se reiniciaban con la dificultad inicial del pool, de modo que las primeras participaciones tras cada reinicio se rechazaban. Ahora la dificultad se envía primero, los mineros retoman la dificultad a la que ya estaban ajustados en lugar de empezar de cero, y el trabajo ya iniciado se acepta en vez de rechazarse. Estado del pool informa además del estado del registro de cabeceras.',
|
||||
'La página de mejores participaciones ya puede mostrarle la prueba de trabajo en sí. Un nuevo botón «Mostrar PoW» abre la cabecera de bloque de su mejor participación, dibujada como un bloque con cada campo en su sitio, versión, bloque anterior, raíz de Merkle, hora, bits y nonce, junto a los 80 bytes en bruto que el minero pasó por el hash. Pulse Verificar y la página reproduce toda la verificación ante usted: reconstruye la raíz de Merkle a partir de la transacción coinbase y sus hashes de rama, rellena la cabecera en bloques de mensaje, ejecuta las rondas de compresión reales de SHA-256, vuelve a aplicar el hash al resultado, invierte los bytes y compara el hash con el objetivo de la participación y con el de la red. Todos los valores proceden de su propia participación y se calculan en su navegador, así que puede comprobar que el pool dice la verdad sin tener que confiar en él; además dispone de la cabecera en bruto y de una orden de terminal de una sola línea para verificarlo por fuera. Las cabeceras solo se registran a partir de esta versión: una mejor participación encontrada antes no puede reconstruirse, así que hasta que se establezca un nuevo récord la página muestra la mejor participación desde la actualización y lo indica. Reiniciar el servicio tampoco provoca ya una ráfaga de participaciones rechazadas. A los mineros se les enviaba trabajo antes de indicarles con qué dificultad debían trabajar, y todos se reiniciaban con la dificultad inicial del pool, de modo que las primeras participaciones tras cada reinicio se rechazaban. Ahora la dificultad se envía primero, los mineros retoman la dificultad a la que ya estaban ajustados en lugar de empezar de cero, y el trabajo ya iniciado se acepta en vez de rechazarse. Estado del pool informa además del estado del registro de cabeceras.',
|
||||
de_DE:
|
||||
'Die Bestwert-Seite kann Ihnen jetzt den Arbeitsnachweis selbst zeigen. Eine neue Schaltfläche „PoW anzeigen“ öffnet den Blockheader hinter Ihrem besten Share, gezeichnet als Block mit jedem Feld an seinem Platz — Version, vorheriger Block, Merkle-Wurzel, Zeit, Bits und Nonce — daneben die rohen 80 Bytes, die der Miner gehasht hat. Klicken Sie auf „Überprüfen“, und die Seite spielt die gesamte Überprüfung vor Ihren Augen ab: Sie baut die Merkle-Wurzel aus der Coinbase-Transaktion und ihren Zweig-Hashes neu auf, füllt den Header zu Nachrichtenblöcken auf, durchläuft die echten SHA-256-Kompressionsrunden, hasht das Ergebnis ein zweites Mal, dreht die Bytes um und vergleicht den Hash mit dem Share-Ziel und dem Netzwerk-Ziel. Alle angezeigten Werte stammen aus Ihrem eigenen Share und werden in Ihrem Browser berechnet, sodass Sie überprüfen können, ob der Pool die Wahrheit sagt, ohne ihm vertrauen zu müssen — und der rohe Header sowie ein einzeiliger Terminalbefehl stehen bereit, um es anderswo nachzurechnen. Header werden erst ab dieser Version aufgezeichnet: ein früher gefundener bester Share lässt sich nicht rekonstruieren, daher zeigt die Seite bis zum nächsten Rekord den besten Share seit dem Update und weist darauf hin. Auch ein Neustart des Dienstes führt nicht mehr zu einer Welle abgelehnter Shares. Miner erhielten Arbeit, bevor ihnen die Schwierigkeit mitgeteilt wurde, und jeder Miner wurde auf die Startschwierigkeit des Pools zurückgesetzt, sodass die ersten Shares nach jedem Neustart abgelehnt wurden. Nun wird zuerst die Schwierigkeit gesendet, Miner setzen mit der Schwierigkeit fort, auf die sie bereits eingestellt waren, statt von vorn zu beginnen, und bereits begonnene Arbeit wird angenommen statt abgelehnt. „Pool-Status“ meldet zudem den Zustand der Header-Aufzeichnung.',
|
||||
'Die Bestwert-Seite kann Ihnen jetzt den Arbeitsnachweis selbst zeigen. Eine neue Schaltfläche „PoW anzeigen“ öffnet den Blockheader hinter Ihrem besten Share, gezeichnet als Block mit jedem Feld an seinem Platz, Version, vorheriger Block, Merkle-Wurzel, Zeit, Bits und Nonce, daneben die rohen 80 Bytes, die der Miner gehasht hat. Klicken Sie auf „Überprüfen“, und die Seite spielt die gesamte Überprüfung vor Ihren Augen ab: Sie baut die Merkle-Wurzel aus der Coinbase-Transaktion und ihren Zweig-Hashes neu auf, füllt den Header zu Nachrichtenblöcken auf, durchläuft die echten SHA-256-Kompressionsrunden, hasht das Ergebnis ein zweites Mal, dreht die Bytes um und vergleicht den Hash mit dem Share-Ziel und dem Netzwerk-Ziel. Alle angezeigten Werte stammen aus Ihrem eigenen Share und werden in Ihrem Browser berechnet, sodass Sie überprüfen können, ob der Pool die Wahrheit sagt, ohne ihm vertrauen zu müssen, und der rohe Header sowie ein einzeiliger Terminalbefehl stehen bereit, um es anderswo nachzurechnen. Header werden erst ab dieser Version aufgezeichnet: ein früher gefundener bester Share lässt sich nicht rekonstruieren, daher zeigt die Seite bis zum nächsten Rekord den besten Share seit dem Update und weist darauf hin. Auch ein Neustart des Dienstes führt nicht mehr zu einer Welle abgelehnter Shares. Miner erhielten Arbeit, bevor ihnen die Schwierigkeit mitgeteilt wurde, und jeder Miner wurde auf die Startschwierigkeit des Pools zurückgesetzt, sodass die ersten Shares nach jedem Neustart abgelehnt wurden. Nun wird zuerst die Schwierigkeit gesendet, Miner setzen mit der Schwierigkeit fort, auf die sie bereits eingestellt waren, statt von vorn zu beginnen, und bereits begonnene Arbeit wird angenommen statt abgelehnt. „Pool-Status“ meldet zudem den Zustand der Header-Aufzeichnung.',
|
||||
pl_PL:
|
||||
'Strona najlepszych udziałów może teraz pokazać sam dowód pracy. Nowy przycisk „Pokaż PoW” otwiera nagłówek bloku stojący za najlepszym udziałem, narysowany jako blok z każdym polem na swoim miejscu — wersja, poprzedni blok, korzeń Merkle, czas, bity i nonce — obok surowych 80 bajtów, które górnik poddał haszowaniu. Naciśnij „Zweryfikuj”, a strona odtworzy całą weryfikację na Twoich oczach: odbuduje korzeń Merkle z transakcji coinbase i jej haszy gałęzi, uzupełni nagłówek do bloków wiadomości, przejdzie przez prawdziwe rundy kompresji SHA-256, zahaszuje wynik po raz drugi, odwróci bajty i porówna hasz z celem udziału oraz z celem sieci. Wszystkie pokazane wartości pochodzą z Twojego własnego udziału i są obliczane w przeglądarce, więc możesz sprawdzić, czy pula mówi prawdę, nie musząc jej ufać — a surowy nagłówek i jednolinijkowe polecenie terminala pozwalają zweryfikować to gdzie indziej. Nagłówki są zapisywane dopiero od tej wersji: najlepszego udziału znalezionego wcześniej nie da się odtworzyć, więc do czasu pobicia rekordu strona pokazuje najlepszy udział od czasu aktualizacji i wyraźnie o tym informuje. Ponowne uruchomienie usługi nie powoduje już również fali odrzuconych udziałów. Górnicy otrzymywali pracę, zanim powiedziano im, z jaką trudnością mają pracować, a każdy był resetowany do początkowej trudności puli, więc pierwsze udziały po każdym restarcie były odrzucane. Teraz trudność wysyłana jest jako pierwsza, górnicy wracają do trudności, do której byli już dostrojeni, zamiast zaczynać od nowa, a rozpoczęta już praca jest przyjmowana zamiast odrzucana. Stan puli podaje ponadto stan zapisu nagłówków.',
|
||||
'Strona najlepszych udziałów może teraz pokazać sam dowód pracy. Nowy przycisk „Pokaż PoW” otwiera nagłówek bloku stojący za najlepszym udziałem, narysowany jako blok z każdym polem na swoim miejscu, wersja, poprzedni blok, korzeń Merkle, czas, bity i nonce, obok surowych 80 bajtów, które górnik poddał haszowaniu. Naciśnij „Zweryfikuj”, a strona odtworzy całą weryfikację na Twoich oczach: odbuduje korzeń Merkle z transakcji coinbase i jej haszy gałęzi, uzupełni nagłówek do bloków wiadomości, przejdzie przez prawdziwe rundy kompresji SHA-256, zahaszuje wynik po raz drugi, odwróci bajty i porówna hasz z celem udziału oraz z celem sieci. Wszystkie pokazane wartości pochodzą z Twojego własnego udziału i są obliczane w przeglądarce, więc możesz sprawdzić, czy pula mówi prawdę, nie musząc jej ufać, a surowy nagłówek i jednolinijkowe polecenie terminala pozwalają zweryfikować to gdzie indziej. Nagłówki są zapisywane dopiero od tej wersji: najlepszego udziału znalezionego wcześniej nie da się odtworzyć, więc do czasu pobicia rekordu strona pokazuje najlepszy udział od czasu aktualizacji i wyraźnie o tym informuje. Ponowne uruchomienie usługi nie powoduje już również fali odrzuconych udziałów. Górnicy otrzymywali pracę, zanim powiedziano im, z jaką trudnością mają pracować, a każdy był resetowany do początkowej trudności puli, więc pierwsze udziały po każdym restarcie były odrzucane. Teraz trudność wysyłana jest jako pierwsza, górnicy wracają do trudności, do której byli już dostrojeni, zamiast zaczynać od nowa, a rozpoczęta już praca jest przyjmowana zamiast odrzucana. Stan puli podaje ponadto stan zapisu nagłówków.',
|
||||
fr_FR:
|
||||
'La page des meilleures parts peut désormais vous montrer la preuve de travail elle-même. Un nouveau bouton « Afficher la PoW » ouvre l’en-tête de bloc de votre meilleure part, dessiné comme un bloc avec chaque champ à sa place — version, bloc précédent, racine de Merkle, heure, bits et nonce — à côté des 80 octets bruts que le mineur a hachés. Appuyez sur Vérifier et la page rejoue toute la vérification sous vos yeux : elle reconstruit la racine de Merkle à partir de la transaction coinbase et de ses hachages de branche, complète l’en-tête en blocs de message, exécute les véritables tours de compression SHA-256, hache le résultat une seconde fois, inverse les octets et compare le hachage à la cible de la part et à celle du réseau. Toutes les valeurs proviennent de votre propre part et sont calculées dans votre navigateur : vous pouvez donc vérifier que le pool dit vrai sans avoir à lui faire confiance — et l’en-tête brut ainsi qu’une commande de terminal d’une ligne permettent de le recalculer ailleurs. Les en-têtes ne sont enregistrés qu’à partir de cette version : une meilleure part trouvée auparavant ne peut pas être reconstituée, donc jusqu’au prochain record la page affiche la meilleure part depuis la mise à jour et le signale. Le redémarrage du service ne provoque plus non plus de vague de parts rejetées. Les mineurs recevaient du travail avant qu’on leur indique à quelle difficulté travailler, et chacun était réinitialisé à la difficulté de départ du pool, si bien que les premières parts après chaque redémarrage étaient rejetées. La difficulté est désormais envoyée en premier, les mineurs reprennent à la difficulté à laquelle ils étaient déjà ajustés au lieu de repartir de zéro, et le travail déjà entamé est accepté plutôt que rejeté. État du pool indique également l’état de l’enregistrement des en-têtes.',
|
||||
'La page des meilleures parts peut désormais vous montrer la preuve de travail elle-même. Un nouveau bouton « Afficher la PoW » ouvre l’en-tête de bloc de votre meilleure part, dessiné comme un bloc avec chaque champ à sa place, version, bloc précédent, racine de Merkle, heure, bits et nonce, à côté des 80 octets bruts que le mineur a hachés. Appuyez sur Vérifier et la page rejoue toute la vérification sous vos yeux : elle reconstruit la racine de Merkle à partir de la transaction coinbase et de ses hachages de branche, complète l’en-tête en blocs de message, exécute les véritables tours de compression SHA-256, hache le résultat une seconde fois, inverse les octets et compare le hachage à la cible de la part et à celle du réseau. Toutes les valeurs proviennent de votre propre part et sont calculées dans votre navigateur : vous pouvez donc vérifier que le pool dit vrai sans avoir à lui faire confiance, et l’en-tête brut ainsi qu’une commande de terminal d’une ligne permettent de le recalculer ailleurs. Les en-têtes ne sont enregistrés qu’à partir de cette version : une meilleure part trouvée auparavant ne peut pas être reconstituée, donc jusqu’au prochain record la page affiche la meilleure part depuis la mise à jour et le signale. Le redémarrage du service ne provoque plus non plus de vague de parts rejetées. Les mineurs recevaient du travail avant qu’on leur indique à quelle difficulté travailler, et chacun était réinitialisé à la difficulté de départ du pool, si bien que les premières parts après chaque redémarrage étaient rejetées. La difficulté est désormais envoyée en premier, les mineurs reprennent à la difficulté à laquelle ils étaient déjà ajustés au lieu de repartir de zéro, et le travail déjà entamé est accepté plutôt que rejeté. État du pool indique également l’état de l’enregistrement des en-têtes.',
|
||||
},
|
||||
// No data migration in either direction. The proof-of-work record is a new
|
||||
// row in the existing kv table of the same SQLite database, written the
|
||||
// first time a share sets one — nothing that existed before changes shape,
|
||||
// first time a share sets one, nothing that existed before changes shape,
|
||||
// so a downgrade has nothing to undo (an older build simply ignores the
|
||||
// row). The ckpool difficulty fix lives in the binary, not in stored data.
|
||||
migrations: {},
|
||||
|
||||
@@ -4,18 +4,18 @@ export const v0_2_4 = VersionInfo.of({
|
||||
version: '0.2.4:0',
|
||||
releaseNotes: {
|
||||
en_US:
|
||||
'Fixes a bug that could wipe the all-time share statistics — the difficulty distribution and rejection reasons on the Stats page. Those counters are restored from the database when the service starts, but the log reader that updates them was starting at the same moment, and the first share it saw could save a nearly empty set of counters over the accumulated history, which was then read back as the new total. The restore now finishes before the log reader starts, and the counters can no longer be written before they have been read. Found blocks, best-share records and the proof-of-work page were never affected. If your statistics were already lost, the new "Rebuild Share Statistics" action recounts them from CKPool’s log, which still holds every share; it only replaces the stored totals when the log accounts for more shares than they do, so it can restore history but never erase it.',
|
||||
'Fixes a bug that could wipe the all-time share statistics, the difficulty distribution and rejection reasons on the Stats page. Those counters are restored from the database when the service starts, but the log reader that updates them was starting at the same moment, and the first share it saw could save a nearly empty set of counters over the accumulated history, which was then read back as the new total. The restore now finishes before the log reader starts, and the counters can no longer be written before they have been read. Found blocks, best-share records and the proof-of-work page were never affected. If your statistics were already lost, the new "Rebuild Share Statistics" action recounts them from CKPool’s log, which still holds every share; it only replaces the stored totals when the log accounts for more shares than they do, so it can restore history but never erase it.',
|
||||
es_ES:
|
||||
'Corrige un fallo que podía borrar las estadísticas históricas de participaciones: la distribución de dificultad y los motivos de rechazo de la página Estadísticas. Esos contadores se restauran desde la base de datos al iniciar el servicio, pero el lector del registro que los actualiza arrancaba en ese mismo momento, y la primera participación que veía podía guardar unos contadores casi vacíos encima del historial acumulado, que luego se releía como el nuevo total. Ahora la restauración termina antes de que arranque el lector del registro, y los contadores ya no pueden escribirse antes de haberse leído. Los bloques encontrados, los registros de mejores participaciones y la página de prueba de trabajo nunca se vieron afectados. Si sus estadísticas ya se perdieron, la nueva acción «Reconstruir estadísticas de participaciones» las vuelve a contar a partir del registro de CKPool, que conserva todas las participaciones; solo sustituye los totales almacenados cuando el registro contabiliza más participaciones que ellos, así que puede recuperar historial pero nunca borrarlo.',
|
||||
de_DE:
|
||||
'Behebt einen Fehler, der die Allzeit-Share-Statistiken löschen konnte — die Schwierigkeitsverteilung und die Ablehnungsgründe auf der Statistikseite. Diese Zähler werden beim Start des Dienstes aus der Datenbank wiederhergestellt, doch der Protokolleser, der sie aktualisiert, startete im selben Moment, und der erste Share, den er sah, konnte einen nahezu leeren Zählerstand über den angesammelten Verlauf speichern, der anschließend als neuer Gesamtstand zurückgelesen wurde. Die Wiederherstellung wird nun abgeschlossen, bevor der Protokolleser startet, und die Zähler können nicht mehr geschrieben werden, bevor sie gelesen wurden. Gefundene Blöcke, Bestwert-Aufzeichnungen und die Arbeitsnachweis-Seite waren nie betroffen. Falls Ihre Statistiken bereits verloren gegangen sind, zählt die neue Aktion „Share-Statistiken neu aufbauen“ sie aus dem CKPool-Protokoll neu, das weiterhin jeden Share enthält; sie ersetzt die gespeicherten Summen nur, wenn das Protokoll mehr Shares ausweist, kann also Verlauf zurückholen, aber niemals löschen.',
|
||||
'Behebt einen Fehler, der die Allzeit-Share-Statistiken löschen konnte, die Schwierigkeitsverteilung und die Ablehnungsgründe auf der Statistikseite. Diese Zähler werden beim Start des Dienstes aus der Datenbank wiederhergestellt, doch der Protokolleser, der sie aktualisiert, startete im selben Moment, und der erste Share, den er sah, konnte einen nahezu leeren Zählerstand über den angesammelten Verlauf speichern, der anschließend als neuer Gesamtstand zurückgelesen wurde. Die Wiederherstellung wird nun abgeschlossen, bevor der Protokolleser startet, und die Zähler können nicht mehr geschrieben werden, bevor sie gelesen wurden. Gefundene Blöcke, Bestwert-Aufzeichnungen und die Arbeitsnachweis-Seite waren nie betroffen. Falls Ihre Statistiken bereits verloren gegangen sind, zählt die neue Aktion „Share-Statistiken neu aufbauen“ sie aus dem CKPool-Protokoll neu, das weiterhin jeden Share enthält; sie ersetzt die gespeicherten Summen nur, wenn das Protokoll mehr Shares ausweist, kann also Verlauf zurückholen, aber niemals löschen.',
|
||||
pl_PL:
|
||||
'Naprawia błąd, który mógł skasować statystyki udziałów od początku istnienia puli — rozkład trudności i powody odrzuceń na stronie Statystyki. Te liczniki są odtwarzane z bazy danych przy starcie usługi, ale czytnik dziennika, który je aktualizuje, uruchamiał się w tej samej chwili, a pierwszy zobaczony udział mógł zapisać niemal puste liczniki na zgromadzonej historii, którą następnie odczytywano jako nową sumę. Odtwarzanie kończy się teraz przed uruchomieniem czytnika dziennika, a liczniki nie mogą już zostać zapisane, zanim nie zostaną wczytane. Znalezione bloki, rekordy najlepszych udziałów i strona dowodu pracy nigdy nie były tym dotknięte. Jeśli Twoje statystyki już przepadły, nowa akcja „Odbuduj statystyki udziałów” przelicza je na nowo z dziennika CKPool, który wciąż zawiera każdy udział; zastępuje zapisane sumy tylko wtedy, gdy dziennik obejmuje więcej udziałów, więc może przywrócić historię, ale nigdy jej nie usunie.',
|
||||
'Naprawia błąd, który mógł skasować statystyki udziałów od początku istnienia puli, rozkład trudności i powody odrzuceń na stronie Statystyki. Te liczniki są odtwarzane z bazy danych przy starcie usługi, ale czytnik dziennika, który je aktualizuje, uruchamiał się w tej samej chwili, a pierwszy zobaczony udział mógł zapisać niemal puste liczniki na zgromadzonej historii, którą następnie odczytywano jako nową sumę. Odtwarzanie kończy się teraz przed uruchomieniem czytnika dziennika, a liczniki nie mogą już zostać zapisane, zanim nie zostaną wczytane. Znalezione bloki, rekordy najlepszych udziałów i strona dowodu pracy nigdy nie były tym dotknięte. Jeśli Twoje statystyki już przepadły, nowa akcja „Odbuduj statystyki udziałów” przelicza je na nowo z dziennika CKPool, który wciąż zawiera każdy udział; zastępuje zapisane sumy tylko wtedy, gdy dziennik obejmuje więcej udziałów, więc może przywrócić historię, ale nigdy jej nie usunie.',
|
||||
fr_FR:
|
||||
'Corrige un bogue qui pouvait effacer les statistiques de parts depuis toujours — la répartition des difficultés et les motifs de rejet de la page Statistiques. Ces compteurs sont restaurés depuis la base de données au démarrage du service, mais le lecteur de journal qui les met à jour démarrait au même instant, et la première part qu’il voyait pouvait enregistrer des compteurs presque vides par-dessus l’historique accumulé, ensuite relu comme le nouveau total. La restauration se termine désormais avant le démarrage du lecteur de journal, et les compteurs ne peuvent plus être écrits avant d’avoir été lus. Les blocs trouvés, les records de meilleures parts et la page de preuve de travail n’ont jamais été affectés. Si vos statistiques ont déjà été perdues, la nouvelle action « Reconstruire les statistiques de parts » les recompte à partir du journal de CKPool, qui contient encore chaque part ; elle ne remplace les totaux enregistrés que si le journal comptabilise davantage de parts, elle peut donc restaurer de l’historique, jamais l’effacer.',
|
||||
'Corrige un bogue qui pouvait effacer les statistiques de parts depuis toujours, la répartition des difficultés et les motifs de rejet de la page Statistiques. Ces compteurs sont restaurés depuis la base de données au démarrage du service, mais le lecteur de journal qui les met à jour démarrait au même instant, et la première part qu’il voyait pouvait enregistrer des compteurs presque vides par-dessus l’historique accumulé, ensuite relu comme le nouveau total. La restauration se termine désormais avant le démarrage du lecteur de journal, et les compteurs ne peuvent plus être écrits avant d’avoir été lus. Les blocs trouvés, les records de meilleures parts et la page de preuve de travail n’ont jamais été affectés. Si vos statistiques ont déjà été perdues, la nouvelle action « Reconstruire les statistiques de parts » les recompte à partir du journal de CKPool, qui contient encore chaque part ; elle ne remplace les totaux enregistrés que si le journal comptabilise davantage de parts, elle peut donc restaurer de l’historique, jamais l’effacer.',
|
||||
},
|
||||
// No data migration in either direction. The fix lives entirely in the
|
||||
// service binary — the restore now completes before ingestion starts — and
|
||||
// service binary, the restore now completes before ingestion starts, and
|
||||
// the recovery action only rewrites rows the service already owns. Nothing
|
||||
// stored changes shape, so a downgrade has nothing to undo.
|
||||
migrations: {},
|
||||
|
||||
@@ -4,15 +4,15 @@ export const v0_2_5 = VersionInfo.of({
|
||||
version: '0.2.5:0',
|
||||
releaseNotes: {
|
||||
en_US:
|
||||
'The estimated difficulty adjustment on the dashboard is now accurate from the very start of a retarget period. It was measuring elapsed time up to the current moment while counting only completed blocks, so the wait since the last block — ten minutes on average — was counted as mining time that had produced nothing. A few blocks into a period that wait is most of the sample, which is why the figure was wildly off early on and only settled down around the halfway mark. It now measures between block timestamps, matching what mempool.space shows. The estimated time until the adjustment is projected at the pace the network is actually keeping this period, rather than assuming a flat ten minutes per block.',
|
||||
'The estimated difficulty adjustment on the dashboard is now accurate from the very start of a retarget period. It was measuring elapsed time up to the current moment while counting only completed blocks, so the wait since the last block, ten minutes on average, was counted as mining time that had produced nothing. A few blocks into a period that wait is most of the sample, which is why the figure was wildly off early on and only settled down around the halfway mark. It now measures between block timestamps, matching what mempool.space shows. The estimated time until the adjustment is projected at the pace the network is actually keeping this period, rather than assuming a flat ten minutes per block.',
|
||||
es_ES:
|
||||
'El ajuste de dificultad estimado en el panel ahora es preciso desde el comienzo mismo del periodo de reajuste. Antes medía el tiempo transcurrido hasta el momento actual pero contaba solo los bloques completados, de modo que la espera desde el último bloque —diez minutos de media— se contabilizaba como tiempo de minado que no había producido nada. A los pocos bloques de iniciarse un periodo, esa espera representa la mayor parte de la muestra, por lo que la cifra se desviaba muchísimo al principio y solo se estabilizaba hacia la mitad. Ahora se mide entre las marcas de tiempo de los bloques, igual que muestra mempool.space. El tiempo estimado hasta el ajuste se proyecta al ritmo que la red lleva realmente en este periodo, en lugar de suponer diez minutos fijos por bloque.',
|
||||
'El ajuste de dificultad estimado en el panel ahora es preciso desde el comienzo mismo del periodo de reajuste. Antes medía el tiempo transcurrido hasta el momento actual pero contaba solo los bloques completados, de modo que la espera desde el último bloque, diez minutos de media, se contabilizaba como tiempo de minado que no había producido nada. A los pocos bloques de iniciarse un periodo, esa espera representa la mayor parte de la muestra, por lo que la cifra se desviaba muchísimo al principio y solo se estabilizaba hacia la mitad. Ahora se mide entre las marcas de tiempo de los bloques, igual que muestra mempool.space. El tiempo estimado hasta el ajuste se proyecta al ritmo que la red lleva realmente en este periodo, en lugar de suponer diez minutos fijos por bloque.',
|
||||
de_DE:
|
||||
'Die geschätzte Schwierigkeitsanpassung im Dashboard ist jetzt schon zu Beginn einer Anpassungsperiode genau. Zuvor wurde die verstrichene Zeit bis zum aktuellen Moment gemessen, aber nur abgeschlossene Blöcke gezählt — die Wartezeit seit dem letzten Block, im Mittel zehn Minuten, floss also als Mining-Zeit ein, die nichts hervorgebracht hatte. Wenige Blöcke nach Beginn einer Periode macht diese Wartezeit den Großteil der Stichprobe aus, weshalb der Wert anfangs stark abwich und sich erst etwa zur Halbzeit einpendelte. Nun wird zwischen den Zeitstempeln der Blöcke gemessen, so wie es auch mempool.space anzeigt. Die geschätzte Zeit bis zur Anpassung wird mit dem Tempo hochgerechnet, das das Netzwerk in dieser Periode tatsächlich hält, statt pauschal zehn Minuten pro Block anzunehmen.',
|
||||
'Die geschätzte Schwierigkeitsanpassung im Dashboard ist jetzt schon zu Beginn einer Anpassungsperiode genau. Zuvor wurde die verstrichene Zeit bis zum aktuellen Moment gemessen, aber nur abgeschlossene Blöcke gezählt, die Wartezeit seit dem letzten Block, im Mittel zehn Minuten, floss also als Mining-Zeit ein, die nichts hervorgebracht hatte. Wenige Blöcke nach Beginn einer Periode macht diese Wartezeit den Großteil der Stichprobe aus, weshalb der Wert anfangs stark abwich und sich erst etwa zur Halbzeit einpendelte. Nun wird zwischen den Zeitstempeln der Blöcke gemessen, so wie es auch mempool.space anzeigt. Die geschätzte Zeit bis zur Anpassung wird mit dem Tempo hochgerechnet, das das Netzwerk in dieser Periode tatsächlich hält, statt pauschal zehn Minuten pro Block anzunehmen.',
|
||||
pl_PL:
|
||||
'Szacowana korekta trudności na pulpicie jest teraz dokładna już od samego początku okresu korekty. Wcześniej mierzono czas, który upłynął do bieżącej chwili, licząc jedynie ukończone bloki, więc oczekiwanie od ostatniego bloku — średnio dziesięć minut — było wliczane jako czas kopania, który niczego nie przyniósł. Kilka bloków po rozpoczęciu okresu to oczekiwanie stanowi większość próby, dlatego wartość była na początku mocno błędna i stabilizowała się dopiero mniej więcej w połowie. Teraz pomiar odbywa się między znacznikami czasu bloków, tak jak pokazuje to mempool.space. Szacowany czas do korekty jest wyliczany w tempie, które sieć faktycznie utrzymuje w tym okresie, zamiast zakładać sztywne dziesięć minut na blok.',
|
||||
'Szacowana korekta trudności na pulpicie jest teraz dokładna już od samego początku okresu korekty. Wcześniej mierzono czas, który upłynął do bieżącej chwili, licząc jedynie ukończone bloki, więc oczekiwanie od ostatniego bloku, średnio dziesięć minut, było wliczane jako czas kopania, który niczego nie przyniósł. Kilka bloków po rozpoczęciu okresu to oczekiwanie stanowi większość próby, dlatego wartość była na początku mocno błędna i stabilizowała się dopiero mniej więcej w połowie. Teraz pomiar odbywa się między znacznikami czasu bloków, tak jak pokazuje to mempool.space. Szacowany czas do korekty jest wyliczany w tempie, które sieć faktycznie utrzymuje w tym okresie, zamiast zakładać sztywne dziesięć minut na blok.',
|
||||
fr_FR:
|
||||
'L’ajustement de difficulté estimé sur le tableau de bord est désormais exact dès le tout début d’une période de réajustement. Il mesurait auparavant le temps écoulé jusqu’à l’instant présent tout en ne comptant que les blocs terminés : l’attente depuis le dernier bloc — dix minutes en moyenne — était donc comptabilisée comme du temps de minage n’ayant rien produit. Quelques blocs après le début d’une période, cette attente représente l’essentiel de l’échantillon, ce qui explique pourquoi le chiffre était très faux au début et ne se stabilisait qu’à mi-parcours. La mesure se fait maintenant entre les horodatages des blocs, comme l’affiche mempool.space. Le temps estimé avant l’ajustement est projeté au rythme que le réseau tient réellement sur cette période, au lieu de supposer dix minutes fixes par bloc.',
|
||||
'L’ajustement de difficulté estimé sur le tableau de bord est désormais exact dès le tout début d’une période de réajustement. Il mesurait auparavant le temps écoulé jusqu’à l’instant présent tout en ne comptant que les blocs terminés : l’attente depuis le dernier bloc, dix minutes en moyenne, était donc comptabilisée comme du temps de minage n’ayant rien produit. Quelques blocs après le début d’une période, cette attente représente l’essentiel de l’échantillon, ce qui explique pourquoi le chiffre était très faux au début et ne se stabilisait qu’à mi-parcours. La mesure se fait maintenant entre les horodatages des blocs, comme l’affiche mempool.space. Le temps estimé avant l’ajustement est projeté au rythme que le réseau tient réellement sur cette période, au lieu de supposer dix minutes fixes par bloc.',
|
||||
},
|
||||
// No data migration in either direction. The change is confined to how
|
||||
// the service derives one displayed number from data it already fetches
|
||||
|
||||
@@ -4,17 +4,17 @@ export const v0_2_6 = VersionInfo.of({
|
||||
version: '0.2.6:0',
|
||||
releaseNotes: {
|
||||
en_US:
|
||||
'The proof-of-work verification now plays full screen. Pressing Verify on the best-share page takes over the display and walks the whole proof in eight chapters: rebuilding the merkle root from the coinbase transaction and its branch hashes, padding the header into two 512-bit message blocks, seeding the eight hash registers, then the compression rounds themselves — where a live grid shows all 256 bits of the working state flipping, every lit cell a real bit of your share’s computation — followed by the second hash, the byte reversal, and the comparison against the share and network targets. It ends on the block header hash with its leading zeros lit. The formulas are set in proper mathematical notation, and every scene that uses colour carries a legend. Nothing is simulated: all of it comes from hashing your own share in your browser. Playback can be paused, run at 2× or 4×, or skipped straight to the result; Escape closes it and Space pauses. The raw header section now also explains why that data is worth having: a screenshot of a big difficulty number proves nothing, but the 80 bytes behind it are the share hash’s exact preimage, and because they commit to the previous block and to the coinbase transaction that pays you, the proof cannot be lifted from another miner or replayed from a different block.',
|
||||
'The proof-of-work verification now plays full screen. Pressing Verify on the best-share page takes over the display and walks the whole proof in eight chapters: rebuilding the merkle root from the coinbase transaction and its branch hashes, padding the header into two 512-bit message blocks, seeding the eight hash registers, then the compression rounds themselves, where a live grid shows all 256 bits of the working state flipping, every lit cell a real bit of your share’s computation, followed by the second hash, the byte reversal, and the comparison against the share and network targets. It ends on the block header hash with its leading zeros lit. The formulas are set in proper mathematical notation, and every scene that uses colour carries a legend. Nothing is simulated: all of it comes from hashing your own share in your browser. Playback can be paused, run at 2× or 4×, or skipped straight to the result; Escape closes it and Space pauses. The raw header section now also explains why that data is worth having: a screenshot of a big difficulty number proves nothing, but the 80 bytes behind it are the share hash’s exact preimage, and because they commit to the previous block and to the coinbase transaction that pays you, the proof cannot be lifted from another miner or replayed from a different block.',
|
||||
es_ES:
|
||||
'La verificación de la prueba de trabajo ahora se reproduce a pantalla completa. Al pulsar Verificar en la página de mejores participaciones, la animación ocupa toda la pantalla y recorre la prueba entera en ocho capítulos: la reconstrucción de la raíz de Merkle a partir de la transacción coinbase y sus hashes de rama, el relleno de la cabecera en dos bloques de mensaje de 512 bits, la inicialización de los ocho registros de hash y luego las propias rondas de compresión —donde una cuadrícula en vivo muestra los 256 bits del estado de trabajo cambiando, y cada celda encendida es un bit real del cálculo de su participación—, seguidas del segundo hash, la inversión de bytes y la comparación con los objetivos de la participación y de la red. Termina en el hash de la cabecera del bloque con sus ceros iniciales iluminados. Las fórmulas aparecen en notación matemática propiamente compuesta y cada escena que usa color incluye una leyenda. Nada está simulado: todo procede de aplicar el hash a su propia participación en su navegador. La reproducción se puede pausar, acelerar a 2× o 4×, o saltar directamente al resultado; Esc la cierra y la barra espaciadora la pausa. La sección de la cabecera en bruto explica ahora por qué merece la pena tener esos datos: una captura de pantalla con un número de dificultad grande no demuestra nada, pero los 80 bytes que hay detrás son la preimagen exacta del hash de la participación y, como se comprometen con el bloque anterior y con la transacción coinbase que le paga a usted, la prueba no puede tomarse de otro minero ni reutilizarse desde otro bloque.',
|
||||
'La verificación de la prueba de trabajo ahora se reproduce a pantalla completa. Al pulsar Verificar en la página de mejores participaciones, la animación ocupa toda la pantalla y recorre la prueba entera en ocho capítulos: la reconstrucción de la raíz de Merkle a partir de la transacción coinbase y sus hashes de rama, el relleno de la cabecera en dos bloques de mensaje de 512 bits, la inicialización de los ocho registros de hash y luego las propias rondas de compresión, donde una cuadrícula en vivo muestra los 256 bits del estado de trabajo cambiando, y cada celda encendida es un bit real del cálculo de su participación, seguidas del segundo hash, la inversión de bytes y la comparación con los objetivos de la participación y de la red. Termina en el hash de la cabecera del bloque con sus ceros iniciales iluminados. Las fórmulas aparecen en notación matemática propiamente compuesta y cada escena que usa color incluye una leyenda. Nada está simulado: todo procede de aplicar el hash a su propia participación en su navegador. La reproducción se puede pausar, acelerar a 2× o 4×, o saltar directamente al resultado; Esc la cierra y la barra espaciadora la pausa. La sección de la cabecera en bruto explica ahora por qué merece la pena tener esos datos: una captura de pantalla con un número de dificultad grande no demuestra nada, pero los 80 bytes que hay detrás son la preimagen exacta del hash de la participación y, como se comprometen con el bloque anterior y con la transacción coinbase que le paga a usted, la prueba no puede tomarse de otro minero ni reutilizarse desde otro bloque.',
|
||||
de_DE:
|
||||
'Die Arbeitsnachweis-Überprüfung läuft jetzt im Vollbild. Ein Klick auf „Überprüfen“ auf der Bestwert-Seite übernimmt den Bildschirm und führt in acht Kapiteln durch den gesamten Nachweis: den Neuaufbau der Merkle-Wurzel aus der Coinbase-Transaktion und ihren Zweig-Hashes, das Auffüllen des Headers zu zwei 512-Bit-Nachrichtenblöcken, das Initialisieren der acht Hash-Register und dann die Kompressionsrunden selbst — wobei ein Live-Raster alle 256 Bits des Arbeitszustands beim Umkippen zeigt und jede leuchtende Zelle ein echtes Bit der Berechnung Ihres Shares ist — gefolgt vom zweiten Hash, der Byte-Umkehrung und dem Vergleich mit dem Share- und dem Netzwerk-Ziel. Es endet beim Blockheader-Hash mit hervorgehobenen führenden Nullen. Die Formeln sind in korrekter mathematischer Notation gesetzt, und jede Szene mit Farbcodierung hat eine Legende. Nichts ist simuliert: Alles stammt daraus, Ihren eigenen Share in Ihrem Browser zu hashen. Die Wiedergabe lässt sich pausieren, mit 2× oder 4× abspielen oder direkt zum Ergebnis überspringen; Esc schließt sie, die Leertaste pausiert. Der Abschnitt mit dem rohen Header erklärt nun auch, warum diese Daten wertvoll sind: Ein Screenshot mit einer großen Schwierigkeitszahl beweist nichts, aber die 80 Bytes dahinter sind das exakte Urbild des Share-Hashes — und da sie sich auf den vorherigen Block und auf die Coinbase-Transaktion festlegen, die an Sie zahlt, lässt sich der Nachweis weder von einem anderen Miner übernehmen noch aus einem anderen Block wiederverwenden.',
|
||||
'Die Arbeitsnachweis-Überprüfung läuft jetzt im Vollbild. Ein Klick auf „Überprüfen“ auf der Bestwert-Seite übernimmt den Bildschirm und führt in acht Kapiteln durch den gesamten Nachweis: den Neuaufbau der Merkle-Wurzel aus der Coinbase-Transaktion und ihren Zweig-Hashes, das Auffüllen des Headers zu zwei 512-Bit-Nachrichtenblöcken, das Initialisieren der acht Hash-Register und dann die Kompressionsrunden selbst, wobei ein Live-Raster alle 256 Bits des Arbeitszustands beim Umkippen zeigt und jede leuchtende Zelle ein echtes Bit der Berechnung Ihres Shares ist, gefolgt vom zweiten Hash, der Byte-Umkehrung und dem Vergleich mit dem Share- und dem Netzwerk-Ziel. Es endet beim Blockheader-Hash mit hervorgehobenen führenden Nullen. Die Formeln sind in korrekter mathematischer Notation gesetzt, und jede Szene mit Farbcodierung hat eine Legende. Nichts ist simuliert: Alles stammt daraus, Ihren eigenen Share in Ihrem Browser zu hashen. Die Wiedergabe lässt sich pausieren, mit 2× oder 4× abspielen oder direkt zum Ergebnis überspringen; Esc schließt sie, die Leertaste pausiert. Der Abschnitt mit dem rohen Header erklärt nun auch, warum diese Daten wertvoll sind: Ein Screenshot mit einer großen Schwierigkeitszahl beweist nichts, aber die 80 Bytes dahinter sind das exakte Urbild des Share-Hashes, und da sie sich auf den vorherigen Block und auf die Coinbase-Transaktion festlegen, die an Sie zahlt, lässt sich der Nachweis weder von einem anderen Miner übernehmen noch aus einem anderen Block wiederverwenden.',
|
||||
pl_PL:
|
||||
'Weryfikacja dowodu pracy jest teraz odtwarzana na pełnym ekranie. Naciśnięcie „Zweryfikuj” na stronie najlepszych udziałów przejmuje ekran i prowadzi przez cały dowód w ośmiu rozdziałach: odbudowa korzenia Merkle z transakcji coinbase i jej haszy gałęzi, uzupełnienie nagłówka do dwóch 512-bitowych bloków wiadomości, zainicjowanie ośmiu rejestrów skrótu, a następnie same rundy kompresji — gdzie żywa siatka pokazuje wszystkie 256 bitów stanu roboczego w trakcie zmian, a każda zapalona komórka to prawdziwy bit obliczeń Twojego udziału — po czym drugie haszowanie, odwrócenie bajtów i porównanie z celem udziału oraz celem sieci. Kończy się na haszu nagłówka bloku z podświetlonymi wiodącymi zerami. Wzory zapisano w prawidłowej notacji matematycznej, a każda scena używająca kolorów ma legendę. Nic nie jest symulowane: wszystko pochodzi z haszowania Twojego własnego udziału w przeglądarce. Odtwarzanie można wstrzymać, przyspieszyć do 2× lub 4× albo przeskoczyć wprost do wyniku; Esc zamyka, a spacja wstrzymuje. Sekcja surowego nagłówka wyjaśnia teraz również, dlaczego te dane mają wartość: zrzut ekranu z dużą liczbą trudności niczego nie dowodzi, ale stojące za nim 80 bajtów to dokładny przeciwobraz hasza udziału, a ponieważ wiążą się z poprzednim blokiem i z transakcją coinbase wypłacającą Tobie, dowodu nie da się przejąć od innego górnika ani odtworzyć z innego bloku.',
|
||||
'Weryfikacja dowodu pracy jest teraz odtwarzana na pełnym ekranie. Naciśnięcie „Zweryfikuj” na stronie najlepszych udziałów przejmuje ekran i prowadzi przez cały dowód w ośmiu rozdziałach: odbudowa korzenia Merkle z transakcji coinbase i jej haszy gałęzi, uzupełnienie nagłówka do dwóch 512-bitowych bloków wiadomości, zainicjowanie ośmiu rejestrów skrótu, a następnie same rundy kompresji, gdzie żywa siatka pokazuje wszystkie 256 bitów stanu roboczego w trakcie zmian, a każda zapalona komórka to prawdziwy bit obliczeń Twojego udziału, po czym drugie haszowanie, odwrócenie bajtów i porównanie z celem udziału oraz celem sieci. Kończy się na haszu nagłówka bloku z podświetlonymi wiodącymi zerami. Wzory zapisano w prawidłowej notacji matematycznej, a każda scena używająca kolorów ma legendę. Nic nie jest symulowane: wszystko pochodzi z haszowania Twojego własnego udziału w przeglądarce. Odtwarzanie można wstrzymać, przyspieszyć do 2× lub 4× albo przeskoczyć wprost do wyniku; Esc zamyka, a spacja wstrzymuje. Sekcja surowego nagłówka wyjaśnia teraz również, dlaczego te dane mają wartość: zrzut ekranu z dużą liczbą trudności niczego nie dowodzi, ale stojące za nim 80 bajtów to dokładny przeciwobraz hasza udziału, a ponieważ wiążą się z poprzednim blokiem i z transakcją coinbase wypłacającą Tobie, dowodu nie da się przejąć od innego górnika ani odtworzyć z innego bloku.',
|
||||
fr_FR:
|
||||
'La vérification de la preuve de travail s’affiche désormais en plein écran. Un clic sur Vérifier depuis la page des meilleures parts prend possession de l’écran et parcourt toute la preuve en huit chapitres : la reconstruction de la racine de Merkle à partir de la transaction coinbase et de ses hachages de branche, le remplissage de l’en-tête en deux blocs de message de 512 bits, l’initialisation des huit registres de hachage, puis les tours de compression eux-mêmes — où une grille en direct montre les 256 bits de l’état de travail en train de basculer, chaque cellule allumée étant un bit réel du calcul de votre part — suivis du second hachage, de l’inversion des octets et de la comparaison avec la cible de la part et celle du réseau. Cela se termine sur le hachage de l’en-tête de bloc, zéros de tête mis en lumière. Les formules sont composées en notation mathématique correcte, et chaque scène utilisant la couleur comporte une légende. Rien n’est simulé : tout provient du hachage de votre propre part dans votre navigateur. La lecture peut être mise en pause, lancée à 2× ou 4×, ou passée directement au résultat ; Échap ferme et la barre d’espace met en pause. La section de l’en-tête brut explique désormais aussi pourquoi ces données comptent : une capture d’écran affichant une grande difficulté ne prouve rien, mais les 80 octets qui la sous-tendent sont la préimage exacte du hachage de la part et, puisqu’ils engagent le bloc précédent ainsi que la transaction coinbase qui vous paie, la preuve ne peut être reprise d’un autre mineur ni rejouée depuis un autre bloc.',
|
||||
'La vérification de la preuve de travail s’affiche désormais en plein écran. Un clic sur Vérifier depuis la page des meilleures parts prend possession de l’écran et parcourt toute la preuve en huit chapitres : la reconstruction de la racine de Merkle à partir de la transaction coinbase et de ses hachages de branche, le remplissage de l’en-tête en deux blocs de message de 512 bits, l’initialisation des huit registres de hachage, puis les tours de compression eux-mêmes, où une grille en direct montre les 256 bits de l’état de travail en train de basculer, chaque cellule allumée étant un bit réel du calcul de votre part, suivis du second hachage, de l’inversion des octets et de la comparaison avec la cible de la part et celle du réseau. Cela se termine sur le hachage de l’en-tête de bloc, zéros de tête mis en lumière. Les formules sont composées en notation mathématique correcte, et chaque scène utilisant la couleur comporte une légende. Rien n’est simulé : tout provient du hachage de votre propre part dans votre navigateur. La lecture peut être mise en pause, lancée à 2× ou 4×, ou passée directement au résultat ; Échap ferme et la barre d’espace met en pause. La section de l’en-tête brut explique désormais aussi pourquoi ces données comptent : une capture d’écran affichant une grande difficulté ne prouve rien, mais les 80 octets qui la sous-tendent sont la préimage exacte du hachage de la part et, puisqu’ils engagent le bloc précédent ainsi que la transaction coinbase qui vous paie, la preuve ne peut être reprise d’un autre mineur ni rejouée depuis un autre bloc.',
|
||||
},
|
||||
// No data migration in either direction. Presentation only — the change
|
||||
// No data migration in either direction. Presentation only, the change
|
||||
// is confined to the dashboard bundled in the service binary, and it
|
||||
// reads nothing it was not already reading.
|
||||
migrations: {},
|
||||
|
||||
Reference in new issue
Block a user