High Performance Blockchain (HPB)

The HODL Tower
16 min readApr 6, 2019

--

Основная задача — поделиться информацией о проекте, предоставить наиболее значимые уже отобранные мною факты.

Проект нацелен на Китайский рынок, поэтому хайпа особого нет, и в ру-комьюнити о нем, по-моему, мало кто знает/помнит. Из-за этого пруфы найти достаточно проблематично, но, если я что-то находил, то оставлял ссылки здесь. Ссылки — подчеркнуты и выделены курсивом.

По традиции: это не финансовый совет, я никого не призываю покупать/торговать/холдить HPB. Всегда перепроверяйте все сами, ищите источники, вся ответственность за принятые решения лежит только на Вас.

О проекте

Официальный сайт

Mainnet запущен 24 сентября 2018 года.

Заявленная скорость сети: 5000 транзакций в секунду.

Среднее время блока: 6 секунд.

Blockchain explorer

Проект создан в 2017 году.

Основной целью проекта является построение масштабируемой блокчейн-инфраструктуры, а также экосистемы в виде dApp, SDK вокруг нее.

Ключевым отличием данного проекта является то, что в нем используется специально созданное аппаратное решение на базе FPGA микросхемы для ускорения обработки транзакций, разгрузки процессора и стэка TCP/IP, а также для повышения безопасности сети. Об этой плате будет рассказано ниже.

HPB может поддерживать несколько виртуальных машин с помощью General Virtual Machine, т.к. реализует модульный дизайн для виртуальных машин, что позволяет их добавлять по мере необходимости. На данный момент поддерживается Ethereum Virtual Machine (EVM). Планируется поддержка Neo Virtual Machine (NeoVM).

Команда насчитывает 60 человек (информация из телеграмма, в Linkedin — 14).

Аудит кода (Cryptography Experts KnownSec.com Complete its HPB Security Audit. github, linkedin. Не смог найти сам отчет, сайт google translate переводит криво)

Андроид-кошелек (прошел проверку Google и доступен на Google Play — не надо устанавливать левые apk в ручную).

iOS-кошелек (также доступен официально из App Store).

Токенометрика

Первоначально было выпущено 100 000 000 HPB.

Модель — инфляционная (монеты будут генерироваться вечно).

Каждый год на майнинг выделяется 6 000 000 HPB.

Исключение — 1-ый год после mainnet: 3 000 000 HPB.

Кроме того, команда решила, что эти 3 000 000 HPB будут сожжены из резервного фонда:

“Furthermore, we have decided that for the first year of inflation an equal amount of HPB coin will be burned from the reserve fund to drive adoption and economic incentives for BOE-Node holders. This means, despite using an inflationary model, the effective inflation for the first year will be 0%”.

Это означает, что за первый год инфляция равна 0%.

CEO

Из команды решил выделить только CEO: Wang Xiaoming.

Linkedin

Известен в Китае как Lan Lianhua, что в переводе означает Blue Lotus. Начал популизировать блокчейн-технологии (Ethereum со смарт-контрактами в частности) с 2013 года в своем блоге.

Блог (на китайском, нормально переводится через google-translate)

Блог отличается тем, что почти полностью посвящен техническим аспектам как HPB, так и блокчейн-технологиям в целом (Ethereum, смарт-контракты). В основном состоит из примеров кода, структур данных, используемых в смарт-контрактах, написанию самих смарт-контрактов. Достаточно интересно/полезно почитать технический блог от CEO проекта.

Колонка «About» из блога (перевод через google-translate):

Blue Lotus (Wang Xiaoming): Founder of HPB Core Chain ( hpb.io ), Babbitt columnist. More than ten years of experience in financial big data and blockchain technology development, he has participated in the creation of UnionPay big data. The main creative blockchain teaching video program “Ming Shuo” more than 30 issues, compiled the “Ethernet official website document Chinese version”, and as the main author wrote the “blockchain development guide”, in the Chinese blockchain community with ID “blue lotus “famous. On June 9th, 2018, HPB core chain was ranked as the TOP50 blockchain innovation enterprise in the “2018 Hurun Blockchain Enterprise List”.

  • “Most Innovative CEO” на четвертой ежегодной конференции “4th Annual Blockchain Finance & Fin-tech China 2018”
  • Один из основателей UnionPay Smart — это подразделение UnionPay по работе с задачами, связанными с BigData.
  • Основатель Zhaoxi Network Technology Co (я так понял, что это родительская компания HPB)
  • Несколько книг на Китайском: http://book.8btc.com/ethereum http://book.8btc.com/blockchain-developer-guide

Интервью в рамках серии «Heroes of the Chain» от “Blockchain Technology Foundation of Singapore and the blockchain laboratory of Tsinghua University” (19.04.2018).

Интервью с Mars Finance (02.04.2019).

Партнерства

Важные на мой взгляд партнерства

UnionPay Smart

Сайт

Подразделение UnionPay по работе с задачами, связанными с BigData.

Будет построена платформа отслеживания данных авторизации (UnionPay Smart will build a data authorization traceability platform on HPB, https://hpb.io/faq/41)

Деталей нет, но достаточно часто в двухнедельных отчетах команда старается что-то сообщать, т.к. комьюнити это партнерство очень интересует.

Цитата UnionPay Smart COO Xiaojun Jiang (12.03.2019):

Our blockchain-based authorization traceability system, where we work with HPB, plays a very important role in helping us to carry out our big data application services business with security and compliance. While working together, I can see the professionality and pragmatic attitude of the HPB team, which is rare in the industry. I wish HPB a happy birthday on the two year anniversary and [for them to] become a leader in the domestic blockchain industry!

Из отчета (25.03.2019):

The UnionPay Smart authorized traceability system V2.0 has entered its code development phase, which is expected to be completed by the end of the month.

Видео с мероприятия HPB BOE Acceleration Engine Launch Event and Reveal с выступлением UnionPay Smart Chief Operating Officer Jiangxiao Jun “Applications of Blockchain in Big Data and the FinTech Industry” (видео по ссылке с субтитрами, начинается с его выступления):

Веса добавляет тот факт, что Wang Xiaoming является co-founder’ом UnionPay Smart.

SME Finance Forum

Сайт

Shanghai Zhaoxi Network Technology Co., Ltd (родительская компания HPB) 26 сентября 2018 стала членом SME Finance Forum.

Ссылка с самого SME Finance Forum (заметьте: логотип HPB, а не Zhaoxi)

Вкратце о SME Finance Forum: он под патронажем International Finance Group, которая входит в свою очередь в структуру Всемирного банка.

Ссылка на новость

Члены SME Finance Forum

Ссылка на Zhaoxi Network

ITCEC MOU

Сайт

China Electronics Technology Development Company Limited, основана в 1988 году, аффилирована с China Electronics Corporation. Разрабатывает индустриальные технопарки и осуществляет управление ими для CEC. Базируется в Пекине.

Статья по поводу этой новости

Профиль ITCEC на Bloomberg

Новость

Shanghai Blockchain Technology Association/Alliance (SHBTA)

Новость:

HPB officially joined the Shanghai Blockchain Technology Association as a Council Executive

Новость на китайском (подробнее + фото на котором виден логотип HPB, SHBTA и CEO HPB (Wang Xiaoming))

Насколько можно судить по новостям, альянс поддерживается правительством Китая: “Chinese Government Supports Blockchain Investment Hub in Shanghai” (источник)

О SHBTA из статьи: How China Is Developing Blockchain on Its Own Terms:

A short walk across the compound in Tower A6 is where I meet Trista Ding, a representative of Shanghai Blockchain Technology Association. Established in November 2018, the nonprofit organization is the city’s only government-backed blockchain association, falling under the umbrella of the Shanghai Association for Science and Technology. Its mission is to act as a bridge between the government and the industry in order to promote “rapid, healthy and efficient” growth for the technology, and to establish a “safe and highly effective ecosystem,” as well as “a framework for industry standards,” Ding tells me, duly highlighting all the keywords.

OK Capital

Уже после ICO (примерно год с момента своего создания), 27.06.2018 команда получила в качестве финансирования более чем 20000 ETH:

HPB has received strategic investment of over twenty thousand ETH led by OK Capital, followed by BlockWater Capital, Bixin, 8BTC, Krypital Capital, Xinghe Capital, Jitan Capital, Supernode Capital, Continue Capital, Bitcoin World, Jike Xueyuan, Pchain, Block Origin and Guanghe Fund.

Laya.One

Сайт

Проект движка для игр на блокчейне. Дочерняя компания LayaBox, специализирующаяся на web-играх (HTML5/Flash фрэймворки и т.д.)

В данное время, судя по двухнедельным отчетам разрабатывают HTML5 web-версию кошелька для HPB, но будут использовать HPB для своего движка (из новости):

LAYA.ONE will be using HPB and its corresponding Blockchain Offload Engine (BOE) to bolster its digital signature processes. In blockchain game systems, the digital signature is to ensure and identify each player’s identity, and relevant assets.

Banyan Network

Сайт

HPB — один из angel investor Banyan Network. Решил добавить, т.к. CEO Banyan Network Kelvin Long (linkedin) также является co-founder’ом UnionPay Smart, что добавляет достоверности о сотрудничестве с UnionPay Smart.

Удалось найти упоминание об этом от третьих лиц (https://www.isobar.com/cn/en/news/parnership-with-unionpay/, Dentsu Isobar на вики)

Founded in 2012, UnionPay Smart is a subsidiary of UnionPay. Dedicated to big data innovation, UnionPay Smart is dedicated to creating and optimizing big data platforms based on consumer data and providing diversified big data application solutions, such as industry analysis, business decisions and business strategies for China UnionPay and its partners.

Kelvin Long, Cofounder & CTO of UnionPay Smart said: “As a pioneer and advocate of enacting data privacy legislation, UnionPay Smart will push forward innovative applications of UnionPay data under relevant regulation in a safe and legal manner. This partnership is unprecedented in the history of UnionPay Smart as it’s the first time we have collaborated with a market leader in advertising that has crossover connection of big data solution at its’ core. Big data is the future of marketing, but it cannot be achieved without massive real data, cutting-edge data mining technology and expertise in data analytics. UnionPay Smart has exclusive data of tagged consumer behavior and leading big data technology; Dentsu Aegis Network has access to unparalleled data and intelligence in digital and marketing. Through the integration of our own strengths on the precondition of protecting data safety and privacy, our shared vision is to enable brands to achieve new levels of efficiency, effectiveness and customer satisfaction. ”

AceChariot

Сайт

Аркадная мультиплеер-игра на HPB (говорят в этом видео)

Есть на стиме, но только на китайском

По-моему, компания-разработчик: http://index.lightsecond.top/

Acechain WhitePaper: http://chariot.lightsecond.top/Acechain.pdf

Упоминание на китайсокм об HPB и игре.

Blockchain Offload Engine (BOE)

Blockchain Offload Engine (BOE)

Cамое интересное в проекте. BOE — это аппаратное решение, созданное с целью решить проблему масштабируемости блокчейн-сетей (TPS).

Из себя представляет PCI-E плату с FPGA чипом на ней. Если Вы прошли первый этап выборов нод (о которых будет рассказано ниже), то HPB Foundation вышлет Вам BOE абсолютно бесплатно (включая доставку).

Технологический стэк
Упрощенная логическая схема BOE

Задачи, которые решает BOE:

Ускорение ECDSA (Elliptic Curve Digital Signature Algorithm)

Каждая транзакция и передача блока нуждаются в подписи ECDSA. Текущие программные реализации ограничены в количестве таких проверок/подписей в секунду (verification per second, VPS). В BOE встроен аппаратный модуль, многократно увеличивающий VPS за счет разгрузки CPU.

Аппаратный генератор случайных чисел (RNG)

Каждое соединение между узлами осуществляется путем создания защищенного канала через обмен ключей, где и нужны случайные числа. Программные реализации RNG генерируют лишь псевдослучайные числа, кроме того, нагружая CPU. BOE снимает эти задачи с CPU, повышая при этом безопасность.

Фрагментация данных

BOE реализует block data fragmentation broadcast processing (на английском звучит понятнее, чем при переводе на русский, как и со многими другими терминами), что ускоряет синхронизацию между узлами.

Скорость сети

Для того чтобы стать High-Performance Node узлу необходимо обладать достаточной пропускной способностью сети. BOE производит соответствующие замеры метрик. Также в BOE встроен TCP/IP Offload Engine Module (TOE), который разгружает процессор от обработки TCP/IP пакетов.

Параллельность

BOE может обеспечить более 10000 одновременных TCP соединений обрабатываемых параллельно, что значительно ускоряет распространение данных по сети (transaction data broadcasting, transaction confirmation broadcasting), сокращая при этом время ответа.

Полностью открытый проект: схемы, компоненты платы на github.

FPGA, который используется в BOE: XCZU7CG-FFVC1156 (8-ая страница отсюда), pinout. Цена только этого чипа без учета затрат на само производство, проеткирование, отладку платы на момент написания статьи — 2184.48$. Поэтому, повторюсь, что BOE высылаются бесплатно, включая доставку.

Видео

Распаковка:

Производство:

Фото

Упаковка
Антистатические перчатки :)
Аксессуары
BOE

Ноды и консенсус

Типы нод

Есть два типа нод: High Performance Node и Candidate Node.

High Performance Node (HPNode) –нода, которая может генерировать блоки.

Candidate Node (CNode) — это нода, которая может стать High Performance Node.

Количество нод и юнитов BOE

Первая фаза

Продолжительность: 1 год после mainnet

Количество BOE: 200

Количество нод: 150

Количество HPNode: 31

Вторая фаза

Во второй фазе планируется постепенно увеличить количество нод:

Количество BOE: 400

Количество нод: 300

Количество HPNode: 61

После этих двух фаз в node plan сказано, что дальнейшее решение о количестве нод будет приниматься комьюнити:

Longterm Node-Extension Planning will be decided by the community in the future.

Консенсус и ротация HPNode

Каждые 200 блоков происходит ротация HPNodes среди всех нод по формуле:

R = 50% * S + 15% * B + 35% * V, где

  • R — итоговый ранг ноды;
  • S — ранг по пропускной способности;
  • B — ранг по балансу кошелька ноды;
  • V — количество голосов, отданное за ноду.

Чем меньше ранг — тем выше шанс у ноды стать HPNode.

Пример

У ноды следующие данные: она на 10-м месте по скорости, на 20-м месте по балансу на кошельке и на 30-м месте по количеству голосов среди всех нод.

Тогда ее рейтинг по этой формуле будет равен: 0.5*10 + 0.15*20 + 0.35*30 = 5 + 3 + 10.5 = 18.5.

Кроме того, вне зависимости от ранга есть жесткое ограничение: для того, чтобы стать HPNode — пропускная способность ноды должна быть не меньше 100 Mbit/s upload/download.

Именно поэтому консенсус имеет у проекта свое название: Proof of Performance (PoP), т.к. наибольшее влияние имеет ранг ноды по пропускной способности.

Выборы нод

Категории держателей нод:

  1. ноды, принадлежащие самому проекту HPB (6%),
  2. ноды «по приглашению» (стратегические партнеры, университеты, и т.д.) (24%)
  3. ноды от комьюнити (70%).

Для общего количества 150 нод для первой фазы проценты выше выразятся в следующих числах: 9, 36 и 105 соответственно для каждой категории.

1-ая и 2-ая категории не участвуют в выборах.

В настоящее время всего 118 нод. Насколько я помню, в телеграмме объясняли, что нод меньше, чем 150, потому что раздали еще не все ноды по приглашению — подключают постепенно и выбирают организации, которые способны помочь развитию проекта.

Выборы нод от комьюнити

Осуществляются раз в 3 месяца путем голосования (о нем — ниже).

Этапы:

Первый этап — подача заявлений от кандидатов. Его пропускают уже существующие держатели нод, но они будут участвовать во втором этапе.

Второй этап —выборы комьюнити посредством голосования за претендентов, прошедших первый этап.

Первый этап

Для того, чтобы стать нодой, необходимо иметь свой «железный» сервер, потому что Вы должны иметь прямой доступ к нему, чтобы установить BOE.

Минимальные требования для сервера:

  • CPU — 16 ядер, частота минимум 2 гГц
  • RAM — минимум 32 GB
  • HDD — минимум 16 TB SAS/SSD (можно RAID)
  • Интернет-канал: минимум 20 Mbit/s up/down, рекомендуется 100 Mbit/s up/down.

Надо учесть, что только ноды, у которых 100 Mbit/s up/down могут претендовать на то, чтобы стать HPNode. Поэтому, если Вы захотите стать нодой, то, желательно, отдать свой сервер в дата-центр, где выделят хороший интернет-канал.

Алгоритм:

  1. Подаете заявление через сайт, где заполняете адрес кошелька, спецификацию своего сервера, оставляете свои контактные данные.
  2. После этого надо пройти тест сервера на соответствие минимальным требованиям.
  3. После завершения этапа подачи заявлений на ноды, выбирается 51 кандидат с наибольшем балансом на кошельке среди всех кандидатов, которые прошли тест сервера успешно.
  4. Далее следует подтверждение адреса кошелька путем тестовой транзакции.
  5. Наконец, после этого — KYC.

Всем выбранным кандидатам, прошедшим тест, KYC и подтвердившим свой адрес кошелька будет бесплатно выслана BOE.

Второй этап

Наличие BOE — не означает, что Вы стали нодой. Необходимо пройти второй этап —выборы комьюнити.

Выборы нужны для децентрализации. Любой претендент на ноду, даже находясь в конце списка по балансам кошелька, может стать нодой, если наберет достаточное количество голосов. Это означает, что, не смотря на то, что количество нод не так уж и велико, комьюнити имеет возможность напрямую влиять на то, кто ими может стать.

В выборах участвуют все, у кого есть BOE — т.е. и текущие держатели нод, и новые участники (за исключением приглашенных нод и нод самого проекта). Это обеспечивает ротацию держателей нод, что способствует децентрализации. Кроме того, у держателей нод остается стимул делать что-то для комьюнити, т.к. им нужны голоса для следующих выборов.

Меня немного смутила формулировка, что выборы длятся 7 дней. На самом деле эти 7 дней — это время на агитацию. За Вас, конечно, могут голосовать все это время, но решающими голосами будут только голоса за последний день, т.к. голоса каждый день обнуляются (подробнее про голосование — ниже).

Если не прошли выборы, то у Вас остается BOE и Вы можете участвовать в следующих выборах. Также есть возможность отослать BOE (repurchase), при этом начислят какое-то количество HPB (не знаю сколько), но теряется возможность участвовать в выборах на год.

Замечание: все цифры были взяты из последнего Node Plan. Они могут поменяться в будущем.

Голосование

Голосование в HPB служит двум целям:

  1. С помощью него осуществляются выборы;
  2. Его ежедневные результаты влияют на то, какое вознаграждение получают ноды за майнинг, согласно их голосам (см. Майнинг)

Зачем нужно голосование?

  1. Стимул для держателей нод развивать проект, потому что естественно предположить, что комьюнити будет голосовать за те ноды, которые что-то делают для развития проекта.
  2. Агитация держателей нод служит своего рода PR-кампанией, т.к. держатели нод стараются привлечь внимание к проекту, и, вместе с этим, новых людей.

Как голосовать?

Один голос равен 1 HPB.

Голосование — без заморозки/лока Ваших монет на кошельке.

Голосование идет каждый день. На следующий день все голоса обнуляются, но при этом оно автоматическое — т.е. на следующий день Ваши ноды также получат Ваши голоса (см. Автоголосование).

Количество HPB, доступных для голосования, определяется снимком (snapshot) балансов кошельков каждый день в случайное время.

Голосование производится через кошелек и за исключением комиссии за транзакцию (которая на данный момент незначительна) — бесплатно.

Автоголосование

Когда Вы отдаете голос за ноду, сеть запоминает сколько и за кого проголосовали. После этого эта нода будет получать Ваши голоса до тех пор, пока не снимите свои голоса с нее. Важно, что новые транзакции уже не будут генерироваться с кошелька (не платите за комиссии).

Стоит отметить, что запоминается пропорция по голосам между нодами, а не конкретное количество голосов, отданное за ноды. Это позволяет тратить свой баланс, при этом ноды будут получать голоса в пропорции к оставшемуся балансу.

Исключение из автоголосования — добавление баланса. Новые монеты не участвуют в голосовании до тех пор, пока Вы сами не проголосуете.

Отмечу тот факт, что держатели нод могут голосовать своим балансом как за себя, так и за любую другую ноду.

За голосование Вы ничего не получаете, это не стейкинг! Но, по сути, ничего и не теряете.

Пример

Пусть есть ноды 1 и 2, за которые Вы хотите проголосовать. Всего: 1000,0014675 HPB.

Через кошелек за 1-ую ноду голосуете 750 HPB, за 2-ую — 250. Создаются две транзакции, за которые снимается незначительная комиссия (вроде было 0.00073375 HPB за каждую транзакцию, поэтому для примера такой баланс), у Вас остается ровно 1000 HPB.

Неделю ничего не делаете, но при этом эти две ноды получают 750 и 250 голосов соответственно все эти дни. В кошельке — все те же 1000 HPB (больше никаких транзакций по голосованию не создается, т.к. Вы не перераспределяете голоса).

Вы решаете перевести 900 HPB на биржу. Остается 100 HPB. Теперь 1 и 2 нода получают по 75 и 25 голосов соответственно.

Вы перечислили на кошелек 9900,0014675 HPB. На балансе: 10000,0014675HPB, но ноды будут получать те же 75 и 25 голосов до тех пор, пока Вы сами через кошелек не добавите им голоса, т.к. новые HPB на кошельке не участвуют в голосовании автоматически.

Вы голосуете новыми HPB на кошельке: 7500 и 2500 за 1-ую и 2-ую ноды. Создаются новые транзакции для голосования с той же комиссией, и на балансе остается ровно 10000 HPB. И так далее.

Майнинг (rewards)

Вознаграждение за блок: 3 000 000 / 365 / 24 / 60 / 10 = 0.570776 HPB (это мои подсчеты, основываясь на том, что 3 000 000 выделено на первый год, и том, что в среднем блоки должны генерироваться раз в 6 секунд).

Вознаграждение поделено на 2 части:

  1. 2/3 (66.66%) вознаграждения достается всем нодам. При этом 35% от этих 2/3 (23.33%) достается HPNode, которая сгенерировала блок, а остальные 65% от этих 2/3 (43.33%) — остальным нодам.
  2. 1/3 (33.33%) от вознаграждения достается всем комьюнити нодам (т.е. выбранных путем голосования) пропорционально голосам, полученным нодами за этот день. Ноды, которые были приглашены проектом (24%) и ноды самого проекта (6%) (т.е. не выбирались путем голосования) исключаются из этой части.
Из Node Plan

Выводы

Часто трудно найти пруфы на новости какого-либо проекта, особенно, если он — китайский. Но я все же постараюсь изложить свои умозаключения:

  1. BOE действительно бесплатна, включая доставку, т.к. я сам ее получил (фотографии BOE выше — мои)
  2. Есть ссылка с самого SME Finance Forum, подтверждающая факт того, что родительская компания HPB стала его членом, при этом логотип в новости — от HPB.
  3. Не похоже на неправду заявления о сотрудничестве с UnionPay Smart: 1) CEO HPB был co-founder’ом; 2) CEO Banyan Network для которого HPB выступает в роли angel investor также является co-founder’ом UnionPay Smart (выше в партнерствах есть ссылка с isobar.com о сотрудничестве с UnionPay Smart, где цитируется CEO Banyan Network, но еще как CTO UnionPay Smart); 3) Видео с мероприятия HPB BOE Acceleration Engine Launch Event and Reveal с выступлением UnionPay Smart Chief Operating Officer Jiangxiao Jun “Applications of Blockchain in Big Data and the FinTech Industry” (видео по ссылке с субтитрами, начинается с его выступления). Поэтому можно сделать вывод, что имеют связи с UnionPay Smart. Разрабатываемый dApp для UnionPay Smart— это потенциальный юзкейс и адопшен для проекта HPB.
  4. Уже после ICO 27.06.2018 команда получила в качестве финансирования более чем 20000 ETH (https://medium.com/@hpbglobal/hpb-announcement-06-27-2018-8d6b948bb170). Не вижу логики в том, чтобы вкладываться в проект спустя год после ICO, если он провальный. Т.е. у проекта должны быть видны перспективы и/или уже текущие достижения.
  5. Новый подход к решению проблем масштабируемости — симбиоз software и hardware решения: возможно, что другие проекты будут в будущем использовать их разработки для своих blockchain, что покажет состоятельность и оправданность такого подхода.

Поэтому считаю, что проект имеет хорошие перспективы, и, как минимум, достоен того, чтобы на него обратить внимание и взять на радар.

Другие обзоры, источники, факты

Our app is approved by Ledger but they have not added us to the app manager yet. If you know how, you can add the HPB app manually but we recommend most users wait for the app to be added to the app manager for easier installation.

  • Комьюнити сайт (by Nicemans)

--

--