From 1afb920add09df0db97a4b17b2915e733046e4bb Mon Sep 17 00:00:00 2001 From: sirpeterknight Date: Fri, 6 Mar 2026 12:53:32 +0300 Subject: [PATCH] feat: add advanced troubleshooting docs [DV-4240] --- .vitepress/locales.ts | 8 ++ CHANGELOG.md | 1 + .../re-reading-block-from-blockchain.md | 97 +++++++++++++++++++ src/ar/t.json | 2 + .../re-reading-block-from-blockchain.md | 97 +++++++++++++++++++ src/de/t.json | 2 + .../re-reading-block-from-blockchain.md | 97 +++++++++++++++++++ src/en/t.json | 2 + .../re-reading-block-from-blockchain.md | 97 +++++++++++++++++++ src/es/t.json | 2 + .../re-reading-block-from-blockchain.md | 97 +++++++++++++++++++ src/hi/t.json | 2 + .../re-reading-block-from-blockchain.md | 97 +++++++++++++++++++ src/ko/t.json | 2 + .../re-reading-block-from-blockchain.md | 97 +++++++++++++++++++ src/ru/t.json | 2 + .../re-reading-block-from-blockchain.md | 97 +++++++++++++++++++ src/zh/t.json | 2 + 18 files changed, 801 insertions(+) create mode 100644 src/ar/advanced-troubleshooting/re-reading-block-from-blockchain.md create mode 100644 src/de/advanced-troubleshooting/re-reading-block-from-blockchain.md create mode 100644 src/en/advanced-troubleshooting/re-reading-block-from-blockchain.md create mode 100644 src/es/advanced-troubleshooting/re-reading-block-from-blockchain.md create mode 100644 src/hi/advanced-troubleshooting/re-reading-block-from-blockchain.md create mode 100644 src/ko/advanced-troubleshooting/re-reading-block-from-blockchain.md create mode 100644 src/ru/advanced-troubleshooting/re-reading-block-from-blockchain.md create mode 100644 src/zh/advanced-troubleshooting/re-reading-block-from-blockchain.md diff --git a/.vitepress/locales.ts b/.vitepress/locales.ts index 7a3fee1..b8cbc6b 100644 --- a/.vitepress/locales.ts +++ b/.vitepress/locales.ts @@ -85,6 +85,14 @@ regions.forEach((region: RegionsType) => { { text: "KuCoin", link: `/${region.slug}/exchanges/kucoin.md` } ], }, + { + text: tHandler(region.slug, "Advanced Troubleshooting"), + collapsible: true, + collapsed: false, + items: [ + { text: tHandler(region.slug, "Re-reading a Block from Blockchain"), link: `/${region.slug}/advanced-troubleshooting/re-reading-block-from-blockchain.md` }, + ], + }, { text: tHandler(region.slug, "API Integration"), collapsible: true, diff --git a/CHANGELOG.md b/CHANGELOG.md index c881eff..ab5c508 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] - fix: remove unnecessary translations from the connecting-payment-form-without-api page [DV-4160] +- feat: add Advanced Troubleshooting section and “Re-reading a Block from Blockchain” page (all locales) [DV-4240] ## [0.0.20] diff --git a/src/ar/advanced-troubleshooting/re-reading-block-from-blockchain.md b/src/ar/advanced-troubleshooting/re-reading-block-from-blockchain.md new file mode 100644 index 0000000..08ee532 --- /dev/null +++ b/src/ar/advanced-troubleshooting/re-reading-block-from-blockchain.md @@ -0,0 +1,97 @@ +# إعادة قراءة كتلة من البلوكشين + +> ⚠️ **للمستخدمين المتقدمين فقط.** تتم جميع الإجراءات على مسؤوليتك الخاصة. قد تؤدي التغييرات الخاطئة في قاعدة البيانات إلى فقدان أو تكرار المعاملات. تأكد من فهم كل خطوة قبل المتابعة. + +## المشكلة + +بسبب إعادة تنظيم الكتل في شبكة إيثريوم، قد تكون المعاملة المؤكدة على البلوكشين مفقودة من النظام. يحدث هذا عندما تعالج المعالجة كتلة من فرع سلسلة مؤقت (مُهمَل) وتتخطى الكتلة المقابلة من السلسلة الرئيسية. لاستعادة الحالة الصحيحة، تحتاج إلى تشغيل إعادة قراءة الكتلة المطلوبة يدويًا. + +## الحل + +### 1. إنشاء نسخة احتياطية من قاعدة البيانات + +```bash +sudo -u postgres pg_dump dv-processing > /tmp/dv-processing_backup_$(date +%Y%m%d_%H%M%S).sql +``` + +تحقق من إنشاء الملف وأنه غير فارغ: + +```bash +ls -lh /tmp/dv-processing_backup_*.sql +``` +### 2. (!مهم — في طرفية منفصلة) إيقاف المعالجة + +```bash +sudo systemctl stop dv-processing +``` +### 3. (في الطرفية الرئيسية) التبديل إلى مستخدم قاعدة البيانات + +```bash +sudo su +sudo su - postgres +``` +### 4. (في الطرفية الرئيسية) تشغيل psql + +```bash +psql +``` + +أو + +```bash +/home/dv/embedded/usr/local/pgsql/bin/psql -p 5433 +``` +### 5. (في الطرفية الرئيسية) الاتصال بقاعدة بيانات dv-processing + +```sql +\c dv-processing +``` +### 6. (في الطرفية الرئيسية) قراءة حالة التحليل الحالية + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` + +> !مهم — تذكر النتيجة: +> ``` +> number +> ---------- +> 81923203 +> (1 row) +> ``` +### 7. (في الطرفية الرئيسية) تحديث القيمة إلى الكتلة -1 من معاملتك + +مثال للمعاملة `0xffe238ba2c1e028a8ec1c467cef53fa59112e2ccc922dc64345817f9da0f4e71` — الكتلة `81921203`: + +```sql +update processed_blocks set number = 81921203 where blockchain = 'bsc'; +``` +### 8. (!مهم — في طرفية منفصلة) تشغيل المعالجة + +```bash +sudo systemctl start dv-processing +``` +### 9. (في الطرفية الرئيسية) بعد دقيقتين، تحقق من تقدم الكتل + +يجب أن تزداد القيمة بعشرات أو مئات من `81921203` — وهذا يشير إلى إعادة قراءة ناجحة للكتلة. + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` +### 10. (!مهم — في طرفية منفصلة) إيقاف المعالجة + +```bash +sudo systemctl stop dv-processing +``` +### 11. (في الطرفية الرئيسية) استعادة قيمة الكتلة إلى ما دونته في الخطوة 6 + +```sql +update processed_blocks set number = 81923203 where blockchain = 'bsc'; +``` +### 12. (!مهم — في طرفية منفصلة) تشغيل المعالجة + +```bash +sudo systemctl start dv-processing +``` + +بعد ذلك، من المرجح أن تُلتقط المعاملة. diff --git a/src/ar/t.json b/src/ar/t.json index 3e87ca2..2de894f 100644 --- a/src/ar/t.json +++ b/src/ar/t.json @@ -64,6 +64,8 @@ "Connecting a payment form without API": "ربط نموذج الدفع بدون API", "Connecting exchanges": "ربط البورصات", "Exchanges": "البورصات", + "Advanced Troubleshooting": "استكشاف الأخطاء المتقدم", + "Re-reading a Block from Blockchain": "إعادة قراءة كتلة من البلوكشين", "Exchanges integration": "البورصات", "Proxying requests to exchanges": "طلبات الوكيل إلى البورصات", "Security": "الأمن", diff --git a/src/de/advanced-troubleshooting/re-reading-block-from-blockchain.md b/src/de/advanced-troubleshooting/re-reading-block-from-blockchain.md new file mode 100644 index 0000000..b33ec12 --- /dev/null +++ b/src/de/advanced-troubleshooting/re-reading-block-from-blockchain.md @@ -0,0 +1,97 @@ +# Block erneut aus der Blockchain lesen + +> ⚠️ **Nur für fortgeschrittene Benutzer.** Alle Aktionen erfolgen auf eigenes Risiko. Falsche Änderungen an der Datenbank können zu Verlust oder Duplizierung von Transaktionen führen. Stellen Sie sicher, dass Sie jeden Schritt verstehen, bevor Sie fortfahren. + +## Problem + +Aufgrund der Block-Reorganisation im Ethereum-Netzwerk kann eine im Blockchain bestätigte Transaktion im System fehlen. Dies geschieht, wenn die Verarbeitung einen Block aus einem temporären (verworfenen) Chain-Zweig verarbeitet und den entsprechenden Block der Hauptkette übersprungen hat. Um den korrekten Zustand wiederherzustellen, müssen Sie das erneute Lesen des erforderlichen Blocks manuell auslösen. + +## Lösung + +### 1. Datenbanksicherung erstellen + +```bash +sudo -u postgres pg_dump dv-processing > /tmp/dv-processing_backup_$(date +%Y%m%d_%H%M%S).sql +``` + +Überprüfen Sie, dass die Datei erstellt wurde und nicht leer ist: + +```bash +ls -lh /tmp/dv-processing_backup_*.sql +``` +### 2. (!WICHTIG — in einem separaten Terminal) Verarbeitung stoppen + +```bash +sudo systemctl stop dv-processing +``` +### 3. (im Hauptterminal) Zum Datenbankbenutzer wechseln + +```bash +sudo su +sudo su - postgres +``` +### 4. (im Hauptterminal) psql starten + +```bash +psql +``` + +oder + +```bash +/home/dv/embedded/usr/local/pgsql/bin/psql -p 5433 +``` +### 5. (im Hauptterminal) Mit der dv-processing-Datenbank verbinden + +```sql +\c dv-processing +``` +### 6. (im Hauptterminal) Aktuellen Parsing-Zustand auslesen + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` + +> !WICHTIG — merken Sie sich das Ergebnis: +> ``` +> number +> ---------- +> 81923203 +> (1 row) +> ``` +### 7. (im Hauptterminal) Wert auf Block -1 Ihrer Transaktion setzen + +Beispiel für Transaktion `0xffe238ba2c1e028a8ec1c467cef53fa59112e2ccc922dc64345817f9da0f4e71` — Block `81921203`: + +```sql +update processed_blocks set number = 81921203 where blockchain = 'bsc'; +``` +### 8. (!WICHTIG — in einem separaten Terminal) Verarbeitung starten + +```bash +sudo systemctl start dv-processing +``` +### 9. (im Hauptterminal) Nach ein paar Minuten prüfen, ob die Blöcke fortgeschritten sind + +Der Wert sollte um mehrere Zehner oder Hunderte von `81921203` gestiegen sein — dies zeigt erfolgreiches erneutes Lesen des Blocks an. + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` +### 10. (!WICHTIG — in einem separaten Terminal) Verarbeitung stoppen + +```bash +sudo systemctl stop dv-processing +``` +### 11. (im Hauptterminal) Blockwert auf den in Schritt 6 notierten Wert zurücksetzen + +```sql +update processed_blocks set number = 81923203 where blockchain = 'bsc'; +``` +### 12. (!WICHTIG — in einem separaten Terminal) Verarbeitung starten + +```bash +sudo systemctl start dv-processing +``` + +Danach wird die Transaktion mit hoher Wahrscheinlichkeit erfasst. diff --git a/src/de/t.json b/src/de/t.json index 35bf5bf..ac6b891 100644 --- a/src/de/t.json +++ b/src/de/t.json @@ -64,6 +64,8 @@ "Connecting a payment form without API": "Einbindung eines Zahlungsformulars ohne API", "Connecting exchanges": "Börsen verbinden", "Exchanges": "Börsen", + "Advanced Troubleshooting": "Erweiterte Fehlerbehebung", + "Re-reading a Block from Blockchain": "Block erneut aus der Blockchain lesen", "Exchanges integration": "Integration der Börse", "Proxying requests to exchanges": "Proxy-Anfragen an Börsen", "Security": "Sicherheit", diff --git a/src/en/advanced-troubleshooting/re-reading-block-from-blockchain.md b/src/en/advanced-troubleshooting/re-reading-block-from-blockchain.md new file mode 100644 index 0000000..cfb5aaa --- /dev/null +++ b/src/en/advanced-troubleshooting/re-reading-block-from-blockchain.md @@ -0,0 +1,97 @@ +# Re-reading a Block from Blockchain + +> ⚠️ **For advanced users only.** All actions are performed at your own risk. Incorrect changes to the database may result in loss or duplication of transactions. Make sure you understand each step before proceeding. + +## Problem + +Due to block reorganization in the Ethereum network, a transaction that is confirmed on the blockchain may be missing from the system. This happens when processing has handled a block from a temporary (discarded) chain branch and skipped the corresponding block from the main chain. To restore the correct state, you need to manually trigger re-reading of the required block. + +## Solution + +### 1. Create a database backup + +```bash +sudo -u postgres pg_dump dv-processing > /tmp/dv-processing_backup_$(date +%Y%m%d_%H%M%S).sql +``` + +Verify that the file was created and is not empty: + +```bash +ls -lh /tmp/dv-processing_backup_*.sql +``` +### 2. (!IMPORTANT — in a separate terminal) Stop processing + +```bash +sudo systemctl stop dv-processing +``` +### 3. (in the main terminal) Switch to the database user + +```bash +sudo su +sudo su - postgres +``` +### 4. (in the main terminal) Start psql + +```bash +psql +``` + +or + +```bash +/home/dv/embedded/usr/local/pgsql/bin/psql -p 5433 +``` +### 5. (in the main terminal) Connect to the dv-processing database + +```sql +\c dv-processing +``` +### 6. (in the main terminal) Read the current parsing state + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` + +> !IMPORTANT — remember the result: +> ``` +> number +> ---------- +> 81923203 +> (1 row) +> ``` +### 7. (in the main terminal) Update the value to block -1 of your transaction + +Example for transaction `0xffe238ba2c1e028a8ec1c467cef53fa59112e2ccc922dc64345817f9da0f4e71` — block `81921203`: + +```sql +update processed_blocks set number = 81921203 where blockchain = 'bsc'; +``` +### 8. (!IMPORTANT — in a separate terminal) Start processing + +```bash +sudo systemctl start dv-processing +``` +### 9. (in the main terminal) After a couple of minutes, verify that blocks have advanced + +The value should have increased by several tens or hundreds from `81921203` — this indicates successful block re-reading. + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` +### 10. (!IMPORTANT — in a separate terminal) Stop processing + +```bash +sudo systemctl stop dv-processing +``` +### 11. (in the main terminal) Restore the block value to what you noted in step 6 + +```sql +update processed_blocks set number = 81923203 where blockchain = 'bsc'; +``` +### 12. (!IMPORTANT — in a separate terminal) Start processing + +```bash +sudo systemctl start dv-processing +``` + +After this, the transaction will most likely be picked up. diff --git a/src/en/t.json b/src/en/t.json index e0d0e35..0518658 100644 --- a/src/en/t.json +++ b/src/en/t.json @@ -64,6 +64,8 @@ "Connecting a payment form without API": "Connecting a payment form without API", "Connecting exchanges": "Connecting exchanges", "Exchanges": "Exchanges", + "Advanced Troubleshooting": "Advanced Troubleshooting", + "Re-reading a Block from Blockchain": "Re-reading a Block from Blockchain", "Exchanges integration": "Exchange Integration", "Proxying requests to exchanges": "Proxying requests to exchanges", "Security": "Security", diff --git a/src/es/advanced-troubleshooting/re-reading-block-from-blockchain.md b/src/es/advanced-troubleshooting/re-reading-block-from-blockchain.md new file mode 100644 index 0000000..5a75e5c --- /dev/null +++ b/src/es/advanced-troubleshooting/re-reading-block-from-blockchain.md @@ -0,0 +1,97 @@ +# Releer un bloque de la blockchain + +> ⚠️ **Solo para usuarios avanzados.** Todas las acciones se realizan bajo su propia responsabilidad. Los cambios incorrectos en la base de datos pueden provocar pérdida o duplicación de transacciones. Asegúrese de entender cada paso antes de continuar. + +## Problema + +Debido a la reorganización de bloques en la red Ethereum, una transacción confirmada en la blockchain puede faltar en el sistema. Esto ocurre cuando el procesamiento ha manejado un bloque de una rama temporal (descartada) de la cadena y ha omitido el bloque correspondiente de la cadena principal. Para restaurar el estado correcto, debe iniciar manualmente la relectura del bloque requerido. + +## Solución + +### 1. Crear una copia de seguridad de la base de datos + +```bash +sudo -u postgres pg_dump dv-processing > /tmp/dv-processing_backup_$(date +%Y%m%d_%H%M%S).sql +``` + +Compruebe que el archivo se creó y no está vacío: + +```bash +ls -lh /tmp/dv-processing_backup_*.sql +``` +### 2. (!IMPORTANTE — en un terminal aparte) Detener el procesamiento + +```bash +sudo systemctl stop dv-processing +``` +### 3. (en el terminal principal) Cambiar al usuario de la base de datos + +```bash +sudo su +sudo su - postgres +``` +### 4. (en el terminal principal) Iniciar psql + +```bash +psql +``` + +o + +```bash +/home/dv/embedded/usr/local/pgsql/bin/psql -p 5433 +``` +### 5. (en el terminal principal) Conectar a la base de datos dv-processing + +```sql +\c dv-processing +``` +### 6. (en el terminal principal) Leer el estado actual del análisis + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` + +> !IMPORTANTE — recuerde el resultado: +> ``` +> number +> ---------- +> 81923203 +> (1 row) +> ``` +### 7. (en el terminal principal) Actualizar el valor al bloque -1 de su transacción + +Ejemplo para la transacción `0xffe238ba2c1e028a8ec1c467cef53fa59112e2ccc922dc64345817f9da0f4e71` — bloque `81921203`: + +```sql +update processed_blocks set number = 81921203 where blockchain = 'bsc'; +``` +### 8. (!IMPORTANTE — en un terminal aparte) Iniciar el procesamiento + +```bash +sudo systemctl start dv-processing +``` +### 9. (en el terminal principal) Tras un par de minutos, comprobar que los bloques han avanzado + +El valor debería haber aumentado varias decenas o centenas desde `81921203` — esto indica una relectura correcta del bloque. + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` +### 10. (!IMPORTANTE — en un terminal aparte) Detener el procesamiento + +```bash +sudo systemctl stop dv-processing +``` +### 11. (en el terminal principal) Restaurar el valor del bloque al anotado en el paso 6 + +```sql +update processed_blocks set number = 81923203 where blockchain = 'bsc'; +``` +### 12. (!IMPORTANTE — en un terminal aparte) Iniciar el procesamiento + +```bash +sudo systemctl start dv-processing +``` + +Después de esto, la transacción será capturada con alta probabilidad. diff --git a/src/es/t.json b/src/es/t.json index 8d4f6e4..748b773 100644 --- a/src/es/t.json +++ b/src/es/t.json @@ -64,6 +64,8 @@ "Connecting a payment form without API": "Conectar un formulario de pago sin API", "Connecting exchanges": "Conectando intercambios", "Exchanges": "Bolsas", + "Advanced Troubleshooting": "Solución de problemas avanzada", + "Re-reading a Block from Blockchain": "Releer un bloque de la blockchain", "Exchanges integration": "Integración de la Bolsa", "Proxying requests to exchanges": "Solicitudes de proxy a bolsas", "Security": "Seguridad", diff --git a/src/hi/advanced-troubleshooting/re-reading-block-from-blockchain.md b/src/hi/advanced-troubleshooting/re-reading-block-from-blockchain.md new file mode 100644 index 0000000..c262995 --- /dev/null +++ b/src/hi/advanced-troubleshooting/re-reading-block-from-blockchain.md @@ -0,0 +1,97 @@ +# ब्लॉकचेन से ब्लॉक को फिर से पढ़ना + +> ⚠️ **केवल उन्नत उपयोगकर्ताओं के लिए।** सभी क्रियाएं आपके अपने जोखिम पर की जाती हैं। डेटाबेस में गलत परिवर्तन से लेनदेन का नुकसान या दोहराव हो सकता है। आगे बढ़ने से पहले सुनिश्चित करें कि आप प्रत्येक चरण को समझते हैं। + +## समस्या + +इथीरियम नेटवर्क में ब्लॉक पुनर्गठन के कारण, ब्लॉकचेन पर पुष्टि की गई लेनदेन सिस्टम में गायब हो सकती है। ऐसा तब होता है जब प्रोसेसिंग ने अस्थायी (त्यागी गई) चेन शाखा के ब्लॉक को संसाधित किया हो और मुख्य चेन के संबंधित ब्लॉक को छोड़ दिया हो। सही स्थिति पुनर्स्थापित करने के लिए, आपको आवश्यक ब्लॉक को फिर से पढ़ने को मैन्युअल रूप से ट्रिगर करना होगा। + +## समाधान + +### 1. डेटाबेस बैकअप बनाएं + +```bash +sudo -u postgres pg_dump dv-processing > /tmp/dv-processing_backup_$(date +%Y%m%d_%H%M%S).sql +``` + +सत्यापित करें कि फ़ाइल बनाई गई है और खाली नहीं है: + +```bash +ls -lh /tmp/dv-processing_backup_*.sql +``` +### 2. (!महत्वपूर्ण — अलग टर्मिनल में) प्रोसेसिंग रोकें + +```bash +sudo systemctl stop dv-processing +``` +### 3. (मुख्य टर्मिनल में) डेटाबेस उपयोगकर्ता में स्विच करें + +```bash +sudo su +sudo su - postgres +``` +### 4. (मुख्य टर्मिनल में) psql शुरू करें + +```bash +psql +``` + +या + +```bash +/home/dv/embedded/usr/local/pgsql/bin/psql -p 5433 +``` +### 5. (मुख्य टर्मिनल में) dv-processing डेटाबेस से कनेक्ट करें + +```sql +\c dv-processing +``` +### 6. (मुख्य टर्मिनल में) वर्तमान पार्सिंग स्थिति पढ़ें + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` + +> !महत्वपूर्ण — परिणाम याद रखें: +> ``` +> number +> ---------- +> 81923203 +> (1 row) +> ``` +### 7. (मुख्य टर्मिनल में) मान को आपके लेनदेन के ब्लॉक -1 पर अपडेट करें + +लेनदेन `0xffe238ba2c1e028a8ec1c467cef53fa59112e2ccc922dc64345817f9da0f4e71` — ब्लॉक `81921203` के उदाहरण के लिए: + +```sql +update processed_blocks set number = 81921203 where blockchain = 'bsc'; +``` +### 8. (!महत्वपूर्ण — अलग टर्मिनल में) प्रोसेसिंग शुरू करें + +```bash +sudo systemctl start dv-processing +``` +### 9. (मुख्य टर्मिनल में) कुछ मिनट बाद जांचें कि ब्लॉक आगे बढ़े हैं + +मान `81921203` से कई दसियों या सैकड़ों तक बढ़ना चाहिए — यह ब्लॉक के सफल पुनर्पाठन को दर्शाता है। + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` +### 10. (!महत्वपूर्ण — अलग टर्मिनल में) प्रोसेसिंग रोकें + +```bash +sudo systemctl stop dv-processing +``` +### 11. (मुख्य टर्मिनल में) ब्लॉक मान को चरण 6 में नोट किए गए मान पर पुनर्स्थापित करें + +```sql +update processed_blocks set number = 81923203 where blockchain = 'bsc'; +``` +### 12. (!महत्वपूर्ण — अलग टर्मिनल में) प्रोसेसिंग शुरू करें + +```bash +sudo systemctl start dv-processing +``` + +इसके बाद, लेनदेन के पकड़े जाने की संभावना अधिक है। diff --git a/src/hi/t.json b/src/hi/t.json index 35cef6a..eee4ec1 100644 --- a/src/hi/t.json +++ b/src/hi/t.json @@ -64,6 +64,8 @@ "Connecting a payment form without API": "API के बिना भुगतान फ़ॉर्म कनेक्ट करना", "Connecting exchanges": "एक्सचेंज जोड़ना", "Exchanges": "बाज़ारें", + "Advanced Troubleshooting": "उन्नत समस्या निवारण", + "Re-reading a Block from Blockchain": "ब्लॉकचेन से ब्लॉक को फिर से पढ़ना", "Exchanges integration": "एक्सचेंज एकीकरण", "Proxying requests to exchanges": "एक्सचेंजों के लिए प्रॉक्सी अनुरोध", "Security": "सुरक्षा", diff --git a/src/ko/advanced-troubleshooting/re-reading-block-from-blockchain.md b/src/ko/advanced-troubleshooting/re-reading-block-from-blockchain.md new file mode 100644 index 0000000..7d61875 --- /dev/null +++ b/src/ko/advanced-troubleshooting/re-reading-block-from-blockchain.md @@ -0,0 +1,97 @@ +# 블록체인에서 블록 다시 읽기 + +> ⚠️ **고급 사용자 전용.** 모든 작업은 사용자 책임 하에 수행됩니다. 데이터베이스를 잘못 수정하면 거래 손실 또는 중복이 발생할 수 있습니다. 진행하기 전에 각 단계를 이해했는지 확인하세요. + +## 문제 + +이더리움 네트워크의 블록 재구성으로 인해 블록체인에서 확인된 거래가 시스템에 없을 수 있습니다. 처리기가 임시(버려진) 체인 분기의 블록을 처리하고 메인 체인의 해당 블록을 건너뛴 경우 발생합니다. 올바른 상태를 복원하려면 필요한 블록을 수동으로 다시 읽도록 트리거해야 합니다. + +## 해결 방법 + +### 1. 데이터베이스 백업 만들기 + +```bash +sudo -u postgres pg_dump dv-processing > /tmp/dv-processing_backup_$(date +%Y%m%d_%H%M%S).sql +``` + +파일이 생성되었고 비어 있지 않은지 확인하세요: + +```bash +ls -lh /tmp/dv-processing_backup_*.sql +``` +### 2. (!중요 — 별도 터미널에서) 처리 중지 + +```bash +sudo systemctl stop dv-processing +``` +### 3. (메인 터미널에서) 데이터베이스 사용자로 전환 + +```bash +sudo su +sudo su - postgres +``` +### 4. (메인 터미널에서) psql 시작 + +```bash +psql +``` + +또는 + +```bash +/home/dv/embedded/usr/local/pgsql/bin/psql -p 5433 +``` +### 5. (메인 터미널에서) dv-processing 데이터베이스에 연결 + +```sql +\c dv-processing +``` +### 6. (메인 터미널에서) 현재 파싱 상태 읽기 + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` + +> !중요 — 결과를 기억하세요: +> ``` +> number +> ---------- +> 81923203 +> (1 row) +> ``` +### 7. (메인 터미널에서) 값을 거래의 블록 -1로 업데이트 + +거래 `0xffe238ba2c1e028a8ec1c467cef53fa59112e2ccc922dc64345817f9da0f4e71` — 블록 `81921203` 예시: + +```sql +update processed_blocks set number = 81921203 where blockchain = 'bsc'; +``` +### 8. (!중요 — 별도 터미널에서) 처리 시작 + +```bash +sudo systemctl start dv-processing +``` +### 9. (메인 터미널에서) 몇 분 후 블록이 진행되었는지 확인 + +값이 `81921203`에서 수십 또는 수백 단위로 증가했어야 하며, 이는 블록이 성공적으로 다시 읽혔음을 나타냅니다. + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` +### 10. (!중요 — 별도 터미널에서) 처리 중지 + +```bash +sudo systemctl stop dv-processing +``` +### 11. (메인 터미널에서) 블록 값을 6단계에서 적어둔 값으로 복원 + +```sql +update processed_blocks set number = 81923203 where blockchain = 'bsc'; +``` +### 12. (!중요 — 별도 터미널에서) 처리 시작 + +```bash +sudo systemctl start dv-processing +``` + +이후 거래가 캡처될 가능성이 높습니다. diff --git a/src/ko/t.json b/src/ko/t.json index ca51120..8329a52 100644 --- a/src/ko/t.json +++ b/src/ko/t.json @@ -64,6 +64,8 @@ "Connecting a payment form without API": "API 없이 결제 양식 연결", "Connecting exchanges": "거래소 연결 중", "Exchanges": "거래소", + "Advanced Troubleshooting": "고급 문제 해결", + "Re-reading a Block from Blockchain": "블록체인에서 블록 다시 읽기", "Exchanges integration": "거래소 통합", "Proxying requests to exchanges": "거래소로 요청 프록시", "Security": "보안", diff --git a/src/ru/advanced-troubleshooting/re-reading-block-from-blockchain.md b/src/ru/advanced-troubleshooting/re-reading-block-from-blockchain.md new file mode 100644 index 0000000..3c1a45b --- /dev/null +++ b/src/ru/advanced-troubleshooting/re-reading-block-from-blockchain.md @@ -0,0 +1,97 @@ +# Повторное чтение блока из блокчейна + +> ⚠️ **Только для продвинутых пользователей.** Все действия выполняются на страх и риск исполнителя. Неверное изменение данных в базе может привести к потере или дублированию транзакций. Перед выполнением убедитесь, что понимаете каждый шаг. + +## Проблема + +В результате реорганизации блоков в сети Ethereum подтверждённая в блокчейне транзакция может отсутствовать в системе. Это происходит, если процессинг обработал блок из временной (отброшенной) ветки цепочки и пропустил соответствующий блок из основной цепочки. Для восстановления корректного состояния необходимо вручную инициировать повторное чтение нужного блока. + +## Решение + +### 1. Создаём резервную копию базы данных + +```bash +sudo -u postgres pg_dump dv-processing > /tmp/dv-processing_backup_$(date +%Y%m%d_%H%M%S).sql +``` + +Убедитесь, что файл создался и не пустой: + +```bash +ls -lh /tmp/dv-processing_backup_*.sql +``` +### 2. (!ВАЖНО — в отдельном терминале) Останавливаем процессинг + +```bash +sudo systemctl stop dv-processing +``` +### 3. (в основном терминале) Заходим в систему от имени базы данных + +```bash +sudo su +sudo su - postgres +``` +### 4. (в основном терминале) Запускаем psql + +```bash +psql +``` + +или + +```bash +/home/dv/embedded/usr/local/pgsql/bin/psql -p 5433 +``` +### 5. (в основном терминале) Подключаемся к базе dv-processing + +```sql +\c dv-processing +``` +### 6. (в основном терминале) Считываем текущее состояние парсинга + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` + +> !ВАЖНО — запоминаем ответ: +> ``` +> number +> ---------- +> 81923203 +> (1 row) +> ``` +### 7. (в основном терминале) Обновляем значение на блок -1 от вашей транзакции + +Пример для транзакции `0xffe238ba2c1e028a8ec1c467cef53fa59112e2ccc922dc64345817f9da0f4e71` — блок `81921203`: + +```sql +update processed_blocks set number = 81921203 where blockchain = 'bsc'; +``` +### 8. (!ВАЖНО — в отдельном терминале) Запускаем процессинг + +```bash +sudo systemctl start dv-processing +``` +### 9. (в основном терминале) Через пару минут проверяем, что блоки сдвинулись вперёд + +Значение должно вырасти на несколько десятков/сотен от `81921203` — это означает успешную перечитку блока. + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` +### 10. (!ВАЖНО — в отдельном терминале) Останавливаем процессинг + +```bash +sudo systemctl stop dv-processing +``` +### 11. (в основном терминале) Возвращаем значение блока на то, что запомнили в пункте 6 + +```sql +update processed_blocks set number = 81923203 where blockchain = 'bsc'; +``` +### 12. (!ВАЖНО — в отдельном терминале) Запускаем процессинг + +```bash +sudo systemctl start dv-processing +``` + +После этого с высокой степенью вероятности транзакция долетит. diff --git a/src/ru/t.json b/src/ru/t.json index e840067..7771dbe 100644 --- a/src/ru/t.json +++ b/src/ru/t.json @@ -64,6 +64,8 @@ "Connecting a payment form without API": "Подключение платежной формы без API", "Connecting exchanges": "Подключение биржи", "Exchanges": "Биржи", + "Advanced Troubleshooting": "Расширенная диагностика", + "Re-reading a Block from Blockchain": "Повторное чтение блока из блокчейна", "Exchanges integration": "Интеграция биржи", "Proxying requests to exchanges": "Проксирование запросов к биржам", "Security": "Безопасность", diff --git a/src/zh/advanced-troubleshooting/re-reading-block-from-blockchain.md b/src/zh/advanced-troubleshooting/re-reading-block-from-blockchain.md new file mode 100644 index 0000000..5317811 --- /dev/null +++ b/src/zh/advanced-troubleshooting/re-reading-block-from-blockchain.md @@ -0,0 +1,97 @@ +# 从区块链重新读取区块 + +> ⚠️ **仅限高级用户。** 所有操作风险自负。错误修改数据库可能导致交易丢失或重复。请确保在继续之前理解每一步。 + +## 问题 + +由于以太坊网络中的区块重组,已在区块链上确认的交易可能在系统中缺失。当处理程序处理了临时(已丢弃)链分支中的区块并跳过了主链中的对应区块时,就会出现这种情况。要恢复正确状态,您需要手动触发重新读取所需区块。 + +## 解决方案 + +### 1. 创建数据库备份 + +```bash +sudo -u postgres pg_dump dv-processing > /tmp/dv-processing_backup_$(date +%Y%m%d_%H%M%S).sql +``` + +确认文件已创建且不为空: + +```bash +ls -lh /tmp/dv-processing_backup_*.sql +``` +### 2. (!重要 — 在单独终端中)停止处理 + +```bash +sudo systemctl stop dv-processing +``` +### 3. (在主终端中)切换到数据库用户 + +```bash +sudo su +sudo su - postgres +``` +### 4. (在主终端中)启动 psql + +```bash +psql +``` + +或 + +```bash +/home/dv/embedded/usr/local/pgsql/bin/psql -p 5433 +``` +### 5. (在主终端中)连接到 dv-processing 数据库 + +```sql +\c dv-processing +``` +### 6. (在主终端中)读取当前解析状态 + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` + +> !重要 — 请记住结果: +> ``` +> number +> ---------- +> 81923203 +> (1 row) +> ``` +### 7. (在主终端中)将值更新为您交易的区块 -1 + +例如交易 `0xffe238ba2c1e028a8ec1c467cef53fa59112e2ccc922dc64345817f9da0f4e71` — 区块 `81921203`: + +```sql +update processed_blocks set number = 81921203 where blockchain = 'bsc'; +``` +### 8. (!重要 — 在单独终端中)启动处理 + +```bash +sudo systemctl start dv-processing +``` +### 9. (在主终端中)几分钟后,验证区块是否已前进 + +数值应从 `81921203` 增加数十或数百 — 这表示区块已成功重新读取。 + +```sql +select number from processed_blocks where blockchain = 'bsc'; +``` +### 10. (!重要 — 在单独终端中)停止处理 + +```bash +sudo systemctl stop dv-processing +``` +### 11. (在主终端中)将区块值恢复为第 6 步中记录的值 + +```sql +update processed_blocks set number = 81923203 where blockchain = 'bsc'; +``` +### 12. (!重要 — 在单独终端中)启动处理 + +```bash +sudo systemctl start dv-processing +``` + +此后,交易很可能会被捕获。 diff --git a/src/zh/t.json b/src/zh/t.json index 692e9a5..7edcaff 100644 --- a/src/zh/t.json +++ b/src/zh/t.json @@ -64,6 +64,8 @@ "Connecting a payment form without API": "無需 API 即可連接付款表單", "Connecting exchanges": "连接交易所", "Exchanges": "交易所", + "Advanced Troubleshooting": "高级故障排除", + "Re-reading a Block from Blockchain": "从区块链重新读取区块", "Exchanges integration": "交易所整合", "Proxying requests to exchanges": "代理对交易所的请求", "Security": "安全",