← Вернуться

VIZ блок #69721428

Array
(
    [0] => Array
        (
            [trx_id] => ce59e289f10deb121fd111bd56251f7459e507d3
            [block] => 69721428
            [trx_in_block] => 0
            [op_in_trx] => 0
            [virtual_op] => 0
            [timestamp] => 2025-05-19T10:09:54
            [op] => Array
                (
                    [0] => custom
                    [1] => Array
                        (
                            [required_active_auths] => Array
                                (
                                )

                            [required_regular_auths] => Array
                                (
                                    [0] => on1x
                                )

                            [id] => V
                            [json] => {"p":68547797,"d":{"t":"Как же хочется построить что-то в DePin... VizHub которые описывал в свое время идеально в это ложатся. Узлы, которые обслуживают юзеров и берут service fee с пользователя. Хранение файлов, тарификация переданных данных (сетевой трафик), роутинг сообщений, api с своей ценой CPU. Все это выглядит очень вкусно. Но как только начинаешь смотреть на технологии, как видишь, что не хватает некоторого софта.\n\nКлючевая вещь, как учет трафика - ложится не понятно на кого. Вот есть файл в 10 Мегабайт. Он хранится в Хабе от пользователя А. Юзер дал ссылку на него где-нибудь в сети и народ начал качать, создавая нагрузку. Хаб должен тарифицировать всю сетевую нагрузку и, условно, взять 0.1 виз за одно скачивание. Факт скачивания можно записывать в логи того же nginx. Но вот фиксировать частичные загрузки уже не получается. Прервали скачивание, как ты поймешь сколько трафика передано?\n\nВ nginx есть модули. И есть даже отдельная сборка с поддержкой языка lua в конфигах. Именно через него можно написать учет переданных байт с логированием раз в 5 секунд, например.\nНо это настолько усложняет весь хаб...\n\nПлюс к этому надо еще ограничивать скорость скачивания с каждого ip адреса, чтобы распределять нагрузку на всех участников хаба. Один супер активный участник может тормозить удобство остальных (как в shared хостинге).\n\nВот и приходится делать специфичные вещи. Сам LUA в одиночку это не сделает. Надо проксировать запрос в nodejs сервер, который будет подсчитывать логи, трафик и ограничивать юзера, выдавая нужный rate_limit через заголовок  upstream_http_x_rate_limit, проброшенный через директиву auth_request.\n\nЛоги падают в файл постоянно, файл должен считываться постоянно, очищая старые записи, не допуская появления и обработки дублей или пропусков.\n\nСборка nginx + lua модуль есть от https://openresty.org/en/linux-packages.html#ubuntu, но ручная сборка сложное дело. Все это надо делать через контейнеры: https://hub.docker.com/r/openresty/openresty\n\nА это приводит к необходимости сразу вести всю разработку контейнеризованной :D"}}
                        )

                )

        )

    [1] => Array
        (
            [trx_id] => 0000000000000000000000000000000000000000
            [block] => 69721428
            [trx_in_block] => 65535
            [op_in_trx] => 0
            [virtual_op] => 1
            [timestamp] => 2025-05-19T10:09:57
            [op] => Array
                (
                    [0] => witness_reward
                    [1] => Array
                        (
                            [witness] => yamilet
                            [shares] => 0.199999 SHARES
                        )

                )

        )

)

Соседние блоки