Feesim - это программа оценки платы за биткойн. В отличие от оценки платы в ядра биткойнов, Feesim использует текущее состояние мемпульского состояния и скорость прибытия транзакций, что позволяет им реагировать на скачки трафика. Оценки платы можно увидеть здесь.
Оценка платы в Feesim основана на модели; Оценки получены из моделирования Монте -Карло модели очереди сети биткойнов. По сути, мы находим решение для вопроса: «Если мы предположим, что шахтеры определяют приоритеты транзакций по ставке платежных плат Текущий размер Мемпула, какой уровень платы требуется для подтверждения транзакции в блоках X (с вероятностью успеха p)? »
Это позволяет алгоритму оценки приспособиться к вариациям в условиях сети. Например, если блок не был найден в течение часа, и существует большое мемпульское отставание, алгоритм должен признать это и поднять оценки платы. Альтернативно, если есть ежедневные укладки в ставке прибытия транзакций, оценки платы также должны отражать это, что позволяет пользователю платить более низкие сборы в течение периодов затишья.
FEESIM собирает биткойн-сетевые данные через API Bitcoin Core JSON-RPC и вычисляет оценки для:
(txFeerate, txSize)*См. Commit D895E64
Вместе с текущим состоянием Мемпула они используются для выполнения моделирования и получения оценки платы. Здесь можно увидеть оценки политики в области горнодобывающей промышленности, и здесь можно увидеть ставки байтов по прибытии транзакций в зависимости от ставки платы.
Во время нормальной работы FEESIM будет предсказать время подтверждения каждой транзакции и сохранить подсчет доли транзакций, которые соответствовали прогнозу. Эта пропорция должна быть близка к вероятности успеха (по умолчанию 90%), если модель является точной. Эти оценки можно увидеть здесь.
Установите из источника, используя хотя бы go 1.6:
$ go get github.com/bitcoinfees/feesim Feesim использует эксперимент по поставщику GO 1.5, поэтому в качестве альтернативы вы можете установить с GO 1.5, установив переменную среды GO15VENDOREXPERIMENT=1 .
FEESIM требует доступа JSON-RPC к узлу Core Bitcoin Core (версия> 0,13.0, который может быть обрезан). Настройки RPC должны быть указаны в config.yml , как таковой:
bitcoinrpc :
username : myusername
password : mypassword
# host: localhost
# port: 8332Файл конфигурации должен быть размещен в каталоге данных:
~/.feesim~/Library/Application Support/Feesim%LOCALAPPDATA%Feesim После запуска feesim start программа запустит сбор данных, а затем начнет запускать моделирование, как только будет достаточное количество данных. Он должен быть онлайн все время, поскольку он собирает данные Mempool, которые не могут быть получены с помощью автономного анализа.
feesim status показывает статус программы:
$ feesim status
result : Tx estimation window size was 0s, should be at least 600s
txsource : Tx estimation window size was 0s, should be at least 600s
blocksource : Block coverage was only 0/2016, should be at least 1008/2016.
mempool : OK result показывает, доступны ли оценки платы. По умолчанию оценки платы требуют не менее 10 минут данных транзакций и данных из 1008 из последних блоков 2016 года.
После того, как будет достаточное количество данных, моделирование начнет работать и производить оценки платы. Интерфейс отражает интерфейс bitcoin-cli estimatefee :
$ feesim estimatefee 1
0.00030112Это показывает минимальную ставку платы за транзакцию, которая должна быть подтверждена в 1 блоке, с вероятностью 90% (настраивается).
В отличие от bitcoin-cli , если входной аргумент является Ompated или 0, оценки для всех времен подтверждения возвращаются:
$ feesim estimatefee
1: 0.00030138
2: 0.00026738
3: 0.00020492
4: 0.00015988
5: 0.00012805
6: 0.00011478
7: 0.00010616
8: 0.00010001
9: 0.00007519
10: 0.00005020
11: 0.00005000
12: 0.00005000 Основной API JSON-RPC совместим с биткойнским ядром, поэтому FEESIM может использоваться в качестве замены для API estimatefee :
$ bitcoin-cli -rpcport=8350 estimatefee 1
0.00030138В настоящее время Feesim предполагает, что у шахтеров есть такой же MinReLaytxfee, что и ваш узел, поэтому не устанавливайте его слишком низко, иначе оценки времени ожидания для низких сборов будут неточными. Оставаться с по умолчанию должно быть в порядке. См. Commit D895E64 для получения подробной информации.
Возможно, вы захотите настроить maxmempool от Bitcoin Core, чтобы быть ниже по умолчанию, так как это сделает моделирование быстрее и потребует меньшей памяти. maxmempool=100 - это нормально, если вы придерживаетесь настроек по умолчанию (в частности MaxblockConfirms). Недостатком является наличие менее полных данных меморанда.
Моделирование является интенсивным процессором, тогда как сбор данных не является, поэтому вы, возможно, не захотите запускать SIM -карту все время, при этом собирая данные. Для этого используйте feesim pause , чтобы приостановить симуляцию, и feesim unpause для возобновления.
По умолчанию оценки платы обновляются каждую минуту. Возможно, однако, что один запуск симуляции занимает больше времени, чем минута из -за недостаточных ресурсов процессора или исключительно высокого трафика транзакций. В общем, это не вызовет каких -либо серьезных проблем; Это только приводит к тому, что оценки платы обновляются менее регулярно. Тем не менее, возможно, сократить время выполнения симуляции, путем снижения maxblocksconfirms или numiters в конфигурации.
Вы можете отслеживать время выполнения симуляции с feesim metrics ; sim.X - это статистика времени выполнения, в наносекундах, для примерно последних запуска моделирования X
Пожалуйста, смотрите config.yml в этом репозитории для примера файла конфигурации.
Как упоминалось ранее, Feesim требует по умолчанию данных из 1008 из прошлых блоков 2016 года (он должен быть онлайн, когда блоки обнаружены для регистрации данных). Это около 1 недели; Если вы не хотите ждать так долго, вы можете связаться со мной для копии данных блоков.