Я работаю над приложением для получения данных об учетной записи и балансе из основной сети XRPL с использованием API XRPL-py, не зная заранее информацию об учетной записи (кошельке).
Вот ссылка на документация по API XRPL-py: API XRPL-py
XRPL использует нумерацию страниц с помощью маркера, поэтому конструкция представляет собой сериализованный конвейер, требующий выборки пакета данных перед следующим пакетом данных. данные могут быть извлекаются (если меня не дезинформировали?).
Моему скрипту в среднем требуется от 1 до 1,5 секунд для получения и обработки данных за один раз, и поскольку в настоящее время существует ~ 5 миллионов учетных записей ( кошельков) и растет каждый день, для получения всех данных потребуется примерно 8 часов (при условии отсутствия ошибок выборки), длина которых со временем будет только увеличиваться по мере роста количества учетных записей с массовым внедрением.
Наконец, поскольку состояние учетных записей меняется, я хочу часто повторно получать все данные, в идеале один раз в день (если это возможно), но, учитывая 8 часов, которые в настоящее время это занимает, я полагаю, я мог бы жить с раз в неделю, но это очень вероятно станет проблемой, когда объем данных станет намного больше.
Мой вопрос: существует ли более эффективный способ получить данные, которые мне нужны, из XRPL, или моя цель практически невыполнима?< /p>
Вот мой код:
from xrpl.clients import JsonRpcClient
from xrpl.models.requests import LedgerData
import time
# Connect to the XRPL mainnet
client = JsonRpcClient("https://s1.ripple.com:51234")
# Function to fetch data
def fetch_page(marker=None):
ledger_data = LedgerData(
ledger_index=latest_ledger,
binary=False,
marker=marker
)
response = client.request(ledger_data)
if not response.is_successful():
raise ValueError("Failed to fetch ledger data.")
else:
return response.result['state'], response.result.get('marker')
# Function to process data
def process_data(data,accounts):
for obj in data:
if obj['LedgerEntryType'] == 'AccountRoot':
accounts.append({'address': obj['Account'],
'balance': int(obj['Balance']) / 1000000 # Convert drops to number of coins
})
return accounts
latest_ledger = client.request(LedgerData(ledger_index="validated")).result['ledger_index']
accounts = []
while True:
current_marker = None
loop_start_time = time.time() # Start timing
# Fetch data
state, current_marker = fetch_page(current_marker)
# Process data
accounts = process_data(state,accounts)
loop_end_time = time.time() # Start timing
loop_time_elapsed = loop_end_time - loop_start_time
print(f"Total time for pagination call/processing: {loop_time_elapsed:.3f} seconds")
if not current_marker: # No more pages
break
< /code>
Пример вывода. Запуск Script: < /p>
Total time for pagination call/processing: 0.537 seconds
Total time for pagination call/processing: 0.552 seconds
Total time for pagination call/processing: 0.549 seconds
Total time for pagination call/processing: 0.564 seconds
Total time for pagination call/processing: 0.538 seconds
Total time for pagination call/processing: 1.691 seconds
Total time for pagination call/processing: 1.313 seconds
Total time for pagination call/processing: 1.325 seconds
Total time for pagination call/processing: 1.025 seconds
Total time for pagination call/processing: 1.018 seconds
Total time for pagination call/processing: 1.054 seconds
Total time for pagination call/processing: 1.013 seconds
Total time for pagination call/processing: 1.014 seconds
Total time for pagination call/processing: 1.024 seconds
Total time for pagination call/processing: 1.025 seconds
Total time for pagination call/processing: 1.406 seconds
Total time for pagination call/processing: 1.038 seconds
Total time for pagination call/processing: 1.049 seconds
Total time for pagination call/processing: 1.300 seconds
Total time for pagination call/processing: 1.046 seconds
Total time for pagination call/processing: 0.918 seconds
Total time for pagination call/processing: 1.230 seconds
Total time for pagination call/processing: 1.019 seconds
Total time for pagination call/processing: 1.023 seconds
Total time for pagination call/processing: 1.022 seconds
Total time for pagination call/processing: 1.238 seconds
Total time for pagination call/processing: 1.015 seconds
Total time for pagination call/processing: 1.037 seconds
Total time for pagination call/processing: 1.131 seconds
Total time for pagination call/processing: 1.020 seconds
Total time for pagination call/processing: 1.211 seconds
Total time for pagination call/processing: 1.035 seconds
Total time for pagination call/processing: 1.030 seconds
Total time for pagination call/processing: 1.028 seconds
Подробнее здесь: https://stackoverflow.com/questions/793 ... es-of-data
Xrpl -py API - уменьшить скорость поиска данных или извлечь большие партии данных ⇐ Python
Программы на Python
1737741216
Anonymous
Я работаю над приложением для получения данных об учетной записи и балансе из основной сети XRPL с использованием API XRPL-py, не зная заранее информацию об учетной записи (кошельке).
Вот ссылка на документация по API XRPL-py: API XRPL-py
XRPL использует нумерацию страниц с помощью маркера, поэтому конструкция представляет собой сериализованный конвейер, требующий выборки пакета данных перед следующим пакетом данных. данные могут быть извлекаются (если меня не дезинформировали?).
Моему скрипту в среднем требуется от 1 до 1,5 секунд для получения и обработки данных за один раз, и поскольку в настоящее время существует ~ 5 миллионов учетных записей ( кошельков) и растет каждый день, для получения всех данных потребуется примерно 8 часов (при условии отсутствия ошибок выборки), длина которых со временем будет только увеличиваться по мере роста количества учетных записей с массовым внедрением.
Наконец, поскольку состояние учетных записей меняется, я хочу часто повторно получать все данные, в идеале один раз в день (если это возможно), но, учитывая 8 часов, которые в настоящее время это занимает, я полагаю, я мог бы жить с раз в неделю, но это очень вероятно станет проблемой, когда объем данных станет намного больше.
Мой вопрос: существует ли более эффективный способ получить данные, которые мне нужны, из XRPL, или моя цель практически невыполнима?< /p>
Вот мой код:
from xrpl.clients import JsonRpcClient
from xrpl.models.requests import LedgerData
import time
# Connect to the XRPL mainnet
client = JsonRpcClient("https://s1.ripple.com:51234")
# Function to fetch data
def fetch_page(marker=None):
ledger_data = LedgerData(
ledger_index=latest_ledger,
binary=False,
marker=marker
)
response = client.request(ledger_data)
if not response.is_successful():
raise ValueError("Failed to fetch ledger data.")
else:
return response.result['state'], response.result.get('marker')
# Function to process data
def process_data(data,accounts):
for obj in data:
if obj['LedgerEntryType'] == 'AccountRoot':
accounts.append({'address': obj['Account'],
'balance': int(obj['Balance']) / 1000000 # Convert drops to number of coins
})
return accounts
latest_ledger = client.request(LedgerData(ledger_index="validated")).result['ledger_index']
accounts = []
while True:
current_marker = None
loop_start_time = time.time() # Start timing
# Fetch data
state, current_marker = fetch_page(current_marker)
# Process data
accounts = process_data(state,accounts)
loop_end_time = time.time() # Start timing
loop_time_elapsed = loop_end_time - loop_start_time
print(f"Total time for pagination call/processing: {loop_time_elapsed:.3f} seconds")
if not current_marker: # No more pages
break
< /code>
Пример вывода. Запуск Script: < /p>
Total time for pagination call/processing: 0.537 seconds
Total time for pagination call/processing: 0.552 seconds
Total time for pagination call/processing: 0.549 seconds
Total time for pagination call/processing: 0.564 seconds
Total time for pagination call/processing: 0.538 seconds
Total time for pagination call/processing: 1.691 seconds
Total time for pagination call/processing: 1.313 seconds
Total time for pagination call/processing: 1.325 seconds
Total time for pagination call/processing: 1.025 seconds
Total time for pagination call/processing: 1.018 seconds
Total time for pagination call/processing: 1.054 seconds
Total time for pagination call/processing: 1.013 seconds
Total time for pagination call/processing: 1.014 seconds
Total time for pagination call/processing: 1.024 seconds
Total time for pagination call/processing: 1.025 seconds
Total time for pagination call/processing: 1.406 seconds
Total time for pagination call/processing: 1.038 seconds
Total time for pagination call/processing: 1.049 seconds
Total time for pagination call/processing: 1.300 seconds
Total time for pagination call/processing: 1.046 seconds
Total time for pagination call/processing: 0.918 seconds
Total time for pagination call/processing: 1.230 seconds
Total time for pagination call/processing: 1.019 seconds
Total time for pagination call/processing: 1.023 seconds
Total time for pagination call/processing: 1.022 seconds
Total time for pagination call/processing: 1.238 seconds
Total time for pagination call/processing: 1.015 seconds
Total time for pagination call/processing: 1.037 seconds
Total time for pagination call/processing: 1.131 seconds
Total time for pagination call/processing: 1.020 seconds
Total time for pagination call/processing: 1.211 seconds
Total time for pagination call/processing: 1.035 seconds
Total time for pagination call/processing: 1.030 seconds
Total time for pagination call/processing: 1.028 seconds
Подробнее здесь: [url]https://stackoverflow.com/questions/79385231/xrpl-py-api-reduce-speed-of-data-retrieval-or-retrieve-larger-batches-of-data[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия