Hashgraph и Hedera Hashgraph: все, что вам нужно знать

Если вы хотите узнать о технологии Hashgraph, то вы попали в нужное место. Мы подробно рассмотрим его, а также рассмотрим его публичную реализацию, Hedera Hashgraph..

Decentralized Ledger Technologies (DLT) – это один из самых популярных терминов в 2018 году. А почему бы и нет? Это то, что меняет способ решения проблем вокруг нас. Компании и стартапы уже осознали важность интеграции блокчейна в свои рабочие места. Итак, означает ли это, что блокчейн – лучшее решение для компаний, которые хотят трансформировать свой бизнес? Ну не совсем.

Встречайте Hashgraph.

Hashgraph – это DLT (технология распределенного реестра), которая предлагает другой подход к решению децентрализованного решения. Он разработан техническим директором и соучредителем Swirlds Лимоном Бэрдом. Если вы новичок в технологии распределенного реестра, вы можете найти Hashgraph немного сбивающим с толку или вам просто нужно время для четкого представления. Однако, если вы работаете с блокчейнами, вы можете найти поразительное сходство между блокчейном и хешграфом – двумя самыми популярными DLT..

Технология блокчейн

Прежде чем мы перейдем к пониманию Hashgraph, нам нужно получить представление о том, что может предложить технология блокчейн. Прежде всего, это одна из самых популярных технологий распределенного реестра. Многие криптовалюты используют технологию блокчейн. Однако не все они используют концепцию «цепочек блоков»..

Сети блокчейнов – это в основном одноранговые сети, которыми управляют одноранговые узлы. Решающее различие здесь в том, как поддерживается сеть. Они полностью децентрализованы, и никакой орган не управляет сетью. Доверие достигается с помощью алгоритма консенсуса и репликации базы данных..

Ключевым понятием здесь являются «блоки». Транзакции (записи) хранятся в блоках, и в основном они выполняются в цепочках, и данные не могут быть изменены каким-либо возможным способом. Это делает технологию блокчейн идеальной для хранения записей, управления активами, голосования и т. Д..

Проблема с блокчейном

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

Одной из основных проблем, с которыми сталкивается современное решение на основе блокчейнов, является связанная с ними скорость передачи. Ethereum, один из новых DLT на основе блокчейнов, предлагает 15 транзакций в секунду. Биткойн, с другой стороны, тоже не впечатляет. Он обеспечивает всего 5 транзакций в секунду. Это серьезный недостаток, когда бизнесу нужно внедрять технологии блокчейн..

Что такое хешграф? Краткая информация о технологии Hashraph

HASHGRAPH


Хешграф – еще одна технология распределенного реестра. Это запатентованная технология, разработанная Leemon Baird и лицензированная Swirlds Corporation. Hashgraph – это улучшенная версия DLT, которая предлагает безопасность, распространение и децентрализацию с использованием хеширования. Это означает, что он не страдает проблемой скорости..

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

Однако скорости получены из-за его частного характера. Существует также общедоступная версия Hashgraph, которая представляет собой Hedera Hashgraph – еще один вариант использования Hashgraph. Он также относится к категории приложений Hashgraph. Мы поговорим о хешграфе Hedera в следующем разделе статьи. Итак, следите за обновлениями!

Понятно, что если пройти через Техническая документация по хешграфу который был выпущен в мае 2016 года, вы заметите, что он определяет себя как «алгоритм консенсуса» или «систему», а не как технологию распределенного реестра. Мы также согласны с определением того, что это структура данных или алгоритм консенсуса, а не полная система. Причина в том, что его можно рассматривать как строительный блок нижнего уровня. Однако позже в руководстве мы рассмотрим Hedera Hashgraph, который кажется полным решением..

Объяснение хешграфа: обзор технологии

Итак, что же движет технологией Hashgraph? Что делает его более быстрым, безопасным и справедливым в среде DLT? Давай исследуем.

В хэшграфе отсутствует «цепочка блоков». Для повышения общей эффективности технология Hashgraph использует два алгоритма. Вот они:

  • Сплетни о сплетнях
  • Виртуальное голосование

Эти два метода работают просто.

Сплетни о сплетнях

Любой узел в сети должен общаться друг с другом. Это предпосылка метода Сплетни над Сплетнями. Чтобы получить четкое представление, давайте рассмотрим пять узлов: Alpha, Beta, Gamma, Charlie и Bravo. Каждый из этих узлов теперь начинает транзакцию, что приводит к «событию» в сети..

Во время события каждый узел вызывает два других случайно назначенных узла. Эти узлы выбираются случайным образом – им передаются детали транзакции. Например, Beta называет Gamma и Brave, тогда как Alpha вызывает Charlie и Bravo. Он полностью рандомизирован, поэтому мы не знаем, какой узел вызовет другой. Как только событие закончилось, все узлы позвонили друг другу, создав сеть, в которой каждый узел имеет хэш предыдущего блока. Это древовидная система, в которой вы можете визуализировать, как листья соединяются с другими листьями. То, как каждый узел соединяется друг с другом, – вот что делает технологию Hashgraph такой уникальной и в то же время удивительной..

Виртуальное голосование

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

Когда начинается виртуальное голосование, каждый участник ищет то конкретное событие, которое вписывается в сеть. Он известен как «известный свидетель». Проще говоря, выбранные события содержат информацию о старых событиях, которые записываются узлами. Если новое событие совпадает со старым, то оно оценивается как «да», в противном случае – «нет». Таким образом, событие получает наибольшее количество голосов и становится «известным» свидетелем этого «конкретного» раунда. Затем событие предоставляет заказы на транзакцию..

Технический документ по хешграфу – давайте подробнее

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

Цель ознакомления с техническим документом – лучше понять, что может предложить Hashgraph..

В официальном документе первое, что вы заметите, – это то, как Hashgraph определяет себя. Он не называет себя полноценной системой, и это правда. По сути, это консенсусный алгоритм или структура данных, которая предлагает низкоуровневый строительный блок, а не действует как целостная система. Однако в нем упоминается «Hashgraph SDK» в реализации системы криптовалюты..

Хэшграф открывает новые способы решения сложных проблем. Однако он является собственностью Swirls, Inc. и, следовательно, никогда не будет открыт для публики. Итак, как это будет реализовано в других проектах – через партнерство. Они уже начали свое расширение, и одно из этих расширений включает сотрудничество с CULedger. CULedger будет использовать технологию Hyperledger для создания решения для распределенной обработки транзакций Credit Union. Очевидно, мы видим, как фактор скорости Hyperledger помогает ему улучшать финансовые системы..

Но это не совсем закрытая экосистема. Hashgraph предлагает Библиотека SDK что позволяет любому легко экспериментировать с его консенсусной библиотекой.

Язык программирования

Язык программирования, используемый Hashgraph, включает LISP и Java. Ядро написано на этих двух языках программирования. Однако он склоняется к языку JVM, например Scala, Java и т. Д., С использованием SDK, который предлагает Hashgraph..

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

  • Перейдите на https://github.com/mosaicnetworks/babble
  • Python https://github.com/Lapin0t/py-swirld
  • JavaScript https://github.com/buhrmi/hashgraph-js

Технология хэшграфа – отличная концепция, и поэтому вы увидите, что она в равной степени применяется в сообществе открытого исходного кода. Согласно официальному документу, это быстро, безопасно и честно – или нет? Давайте посмотрим на Hashgraph технически.

Как это работает? – Технический обзор

Консенсус хэшграфа – уникальный способ решить проблему консенсуса. Он использует византийскую отказоустойчивость для репликации конечных автоматов. Мы также можем рассматривать это как алгоритм «атомарной трансляции». Это означает, что он устанавливает связь между неупорядоченными транзакциями и соответствующим образом упорядочивает их. Процесс продолжается, и узлы могут отправлять транзакции. После этого каждый узел получает заказанный вывод транзакции, содержащий всю отправленную транзакцию. Таким образом, все узлы связаны, и каждый из них имеет копию «общего порядка», учитывая, что каждый узел упорядочен в соответствии с другими узлами в цепочке. Это эффективный способ упорядочивания транзакций и их соединения. Это делает его идеальным для реализации различных криптовалют, систем и решений..

Давайте посмотрим на две функции.

submit_transaction (транзакция)

get_transaction (индекс) -> транзакция или ноль

Эти две функции лежат в основе работы Hashgraph. Атрибуция транзакции в функции submit_transaction – это объект, который содержит такую ​​информацию, как комиссия, отправитель, получатель, сумма, идентификатор и т. Д. Информация в объекте транзакции используется для определения его положения в сети. Функция submit_transaction вызывается самим узлом, когда ему нужно.

Итак, как Hashgraph гарантирует, что транзакция работает должным образом? Он гарантирует это, следуя алгоритму атомарной трансляции..

  • Если транзакция T1 успешно вызывает submit_transaction (T1), то индекс в вызовах get_transaction (index) должен в конечном итоге вернуть T1.
  • Если вызов get_transaction (index) (any) возвращает транзакцию T2 (не null), тогда он должен возвращать T2 или null для каждого вызова get_transaction (index). В конечном итоге он также вернет T2 для всех вызовов..

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

Создание криптовалюты с использованием Hashraph

Теперь, когда мы поняли, как работают две функции и обеспечивают гарантию в хэшграфе, мы можем использовать эти знания для создания «базовой криптовалюты». На данный момент мы поделимся только псевдокодом, который будет раскрывать его логику..

Криптовалюта Hedera Hashgraph Technology

Объяснение псевдокода

Нам нужно объявить глобальный массив, в котором хранятся адрес и номера отслеживания. Теперь определен метод send_money, который вызывается всякий раз, когда узел решает использовать Hashgraph. Он принимает три атрибута, включая адрес получателя, отправителя и количество, а также количество. Затем сумма сохраняется в массиве транзакций..

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

Приведенный выше код является примером того, как легко создать криптовалюту с помощью Hashgraph. Это базовая модель криптовалюты, и вы всегда можете изменить ее в соответствии с вашими требованиями. Например, вы можете добавить комиссии, добавить функциональность смарт-контракта и так далее. Короче говоря, Hashgraph может легко предоставить любой криптовалюте консенсус, необходимый для выживания. Кроме того, разработчику необходимо создать другие необходимые функции. Это также означает, что Hashgraph предлагает большую гибкость по сравнению с другим аналогичным решением..

Роль клиентов

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

Итак, чем он отличается от узлов в сети биткойнов? Существенная разница – это объем данных, необходимых клиентам для проверки транзакций. В сети биткойнов каждый узел должен загрузить заголовки блоков и подтверждение для проверки отдельной транзакции. С другой стороны, для хэшграфа требуется только структура данных графа. Это уникальный подход, гарантирующий, что для подтверждения транзакции не требуются все данные или большой объем данных. В общей сложности клиенту потребуются подпись и события, которые должны составлять 128 байт данных..

Глубокое понимание алгоритма хэшграфа

Hashgraph предлагает идеальное решение для системы, которая стремится обеспечить практический подход к достижению консенсуса. Алгоритм хранит ключ, поэтому мы сейчас рассмотрим алгоритм и поймем, как он работает..

Возьмем сеть с числом узлов N. Чтобы консенсус был успешным, необходимо убедиться, что он работает даже при наличии вредоносных узлов в сети. Узлы могут работать вместе, чтобы обмануть транзакцию или сознательно задерживать пакеты. Все это означает, что необходима надлежащая защита от подобных атак или сотрудничества между узлами..

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

Прежде чем продолжить, давайте разберемся с терминологией, необходимой для понимания алгоритма..

  • Направленный ациклический граф (DAG): DAG – это структура данных, используемая в Hashgraph, где каждый узел подключен к другим узлам направленным образом, без циклов..
  • События: События содержат набор транзакций, которые представлены вершинами в хэшграфе. Каждая транзакция состоит из информации, включая родителей события, подпись узла, откуда она была создана, и отметку времени..
  • Отметка времени: Отметка времени – это реальное время, в которое произошло событие. Отметки времени учитывают, что они влияют на окончательный порядок узлов..
  • Хеш-функция, устойчивая к коллизиям: Устойчивая к коллизиям хэш-функция используется для обеспечения правильного кодирования всей информации о событии. Это также гарантирует, что история сплетен до события сертифицирована и не изменяется каким-либо образом..

Итак, если событие произойдет, оно будет отправлено на другие узлы. Узел, который становится свидетелем нового события, также будет знать о старом событии, поскольку оно проверяется с помощью алгоритма консенсуса. Все дело в локализованном анализе и правильном использовании сплетен..

Хешграф

Источник: Техническая документация по хешграфу

На изображении выше представлены пять узлов или клиентов, то есть Алиса, Боб, Кэрол, Дэйв и Эд. Каждый из этих узлов регулярно соединяется (сплетничает), что дает повод для событий. Когда узел сплетничает, на график добавляется новое событие с действительной подписью и совпадением хэша. На график добавляются только те события, которые ранее не просматривались, что гарантирует отсутствие избыточной информации на графике..

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

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

Два ключевых свойства: округленное число и двоичное значение

В целом, два ключевых момента – это то, что делает Hashgraph возможным. Первый – это круглое число, которое используется в порядке возрастания. Другая ключевая информация – это двоичное значение, которое определяет, был ли клиент свидетелем события или нет. Значение справедливо только для определенного раунда..

Значения генерируются немедленно, когда происходит событие. Однако все не так просто, как может показаться. Например, двоичное значение может быть любым из трех: «не определился», «определенно да» и «определенно нет». Эти три значения существуют, учитывая, что требуется время, чтобы выбрать значение «определенно да» или «определенно нет». Если есть нерешительность, устанавливается значение «Не определился».

Три ключевые особенности Hashraph

У Hashgraph есть три ключевые особенности, которые делают его отличным выбором для разных проектов. В официальном документе он описывает себя как безопасный, справедливый и быстрый. Чтобы понять каждую из этих функций, давайте обсудим их ниже..

Безопасный: Алгоритм консенсуса действительно предлагает безопасный способ обработки транзакций и гарантирует, что событие освещается правильно. Порядок – это то, что имеет значение в Hashgraph, и Hashgraph гарантирует, что ни один злоумышленник не может возиться с точностью данных или порядком, в котором события связаны друг с другом. Таким образом, он защищает сеть как от проблемы двойных расходов, так и от атаки 51%. Он также эффективно использует стойкую хеш-функцию и цифровые подписи. После того, как транзакция зафиксирована, ее нельзя отменить или изменить. В конце концов, он использует ABFT (асинхронный византийский отказоустойчивый).

Справедливый: Концепция справедливости заключается в том, чтобы быть справедливым по отношению ко всем узлам в сети. Он определяет справедливость, заявляя, что злоумышленник не сможет узнать, какие две новые транзакции попадут в согласованный порядок. Однако неясно, как это может обеспечить справедливость для хэшграфа. Помимо определения в официальном документе, команда Hashgraph также разъяснила через платформы социальных сетей, что справедливость работает хорошо, если большинство узлов знает о транзакции. Это может привести к проблеме, если злоумышленник захватит 2/3 участников. Он может легко изменить порядок событий, не влияя на честность сети. Также нет необходимости в майнинге Hashgraph для узлов..

Быстрый: Сплетни методы считаются довольно быстрыми. Это верно в случае протокола сплетен Хэшграфа. События быстро распространились по сети, учитывая, что все дело в «сплетнях-сплетнях». Это также означает, что со временем необходимо распространять меньше информации. Hashgraph также использует виртуальное голосование, что делает его более эффективным. Но если мы примем во внимание, что каждому узлу требуется весь Hashgraph, размер входящего со временем должен увеличиваться. На данный момент мы не знаем, как это повлияет на производительность сети. Теоретически TPS Hashgraph может достигать 5000000.

Хотите узнать больше о Blockchain VS Hashgraph? Проверьте анализ Hashgraph VS Blockchain прямо сейчас!

Hedera Hashgraph

До сих пор мы обсуждали закрытую экосистему Hashgraph, ее техническую работу и то, как она претендует на то, чтобы быть быстрой, безопасной и справедливой. Однако самым большим препятствием на пути к Hashgraph является его частный характер. Готово к работе.

Познакомьтесь с Hedera Hashgraph, общедоступной сетью Hashgraph, использующей алгоритм консенсуса Hashgraph. Требуется полное использование асинхронного византийского отказоустойчивого алгоритма (aBFT). Гарантированная византийская отказоустойчивость для реплицированных конечных автоматов..

Hedera Hashgraph утверждает свою идею на вершине византийского отказоустойчивого (BFT) консенсуса (aBFT). Усовершенствованная модель гарантирует, что предприятия смогут приносить больше пользы, используя Hedera Hashgraph. Он также управляется Советом Hedera Hashgraph. Конечная цель – предоставить публичный доступ к возможностям Hashgraph и сделать так, чтобы публика использовала безопасную и быструю систему для целей распределенного реестра..

Под капотом и Hashgraph, и Hedera Hashgraph похожи. Они оба используют протокол «сплетен о сплетнях», который использует соглашение BFT для достижения консенсуса. Он также использует виртуальное голосование, что означает отсутствие необходимости в центральном органе. Он полностью децентрализован и предлагает ненадежную среду для его использования..

Использование aBFT обеспечивает справедливость в любых условиях – даже если в сети есть злоумышленники. Все свойства Hashgraph используются в Hedera Hashgraph. Однако, чтобы убедиться, что Hedera Hashgraph защищен от DDoS-атак, алгоритм консенсуса не использует формат лидера..

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

Услуги, предлагаемые платформой Hedera

На платформе Hedera вы можете включить некоторые ключевые услуги, включая следующие:

  • Криптовалюта: позволяет посредникам использовать сеть для платежей в криптовалюте и дает им возможность воспользоваться преимуществами более низкой стоимости и простого дизайна..
  • Смарт-контракты: вы также можете создавать смарт-контракты на платформе Hedera. Для разработки смарт-контрактов вам необходимо использовать Solidity. Как разработчик, вы можете выполнять атомарные свопы, создавать активы и развертывать совершенно новые приложения..
  • Файловые службы: вы также можете использовать платформу Hedera для работы с файловыми службами, то есть для проверки файлов. Это также жалоба на GDPR..

Управление

Управление в Hedera Hashgraph работает иначе. Его можно разделить на два уровня – Совет управляющих и Открытый консенсус..

Управляющий совет – это централизованная система управления, которая не является идеальным решением для любой сети, которая хочет предлагать свои услуги для распределенного реестра. Сообщество также недовольно его подходом, и это все еще одна из самых значительных критических замечаний в адрес Hedera Hashgraph..

С другой стороны, Открытый консенсус – это механизм консенсуса, который мы уже обсуждали выше. Он определяет, как узлы могут присоединяться к сети и становиться ее частью, а также делает ее более децентрализованной. Чтобы обеспечить правильную модель взвешенного голосования, используется Proof-of-Stake. Это гарантирует, что конфликты адекватно смягчены, а также есть соответствующий стимул для пользователей запускать узлы..

Архитектура Hedra Hashgraph

Архитектура Hedra Hashgraph – это трехуровневая архитектура. Он состоит из уровня Интернета (нижний), уровня консенсуса хэшграфа (средний) и уровня служб (верхний). Давайте кратко обсудим каждый слой.

  • Уровень Интернета: уровень обеспечивает связь между компьютерами в Интернете. Развертывает TCP / IP-соединения с шифрованием TLS..
  • Уровень консенсуса хэшграфа (средний): средний уровень содержит узлы, которые участвуют в сети. Эти узлы принимают участие в методе консенсуса с использованием алгоритма консенсуса Hashgraph и протокола сплетен..
  • Уровень служб: самый верхний уровень имеет свои собственные подгруппы – хранилище файлов, криптовалюта и смарт-контракты хэшграфа..

Узлы зарабатывают криптовалюту за участие в сети. Это национальная валюта, которая гарантирует, что пользователи получат стимул к участию..

С другой стороны, файловое хранилище основано на Меркле. Более того, если вы разработчик, вы также можете использовать Solidity, поскольку он поддерживается Hedra. Наконец, он предлагает поддержку смарт-контрактов в верхней части сети, что дает вам возможность создавать масштабируемые децентрализованные приложения..

Hedera Hashgraph dApps

Есть несколько лучших децентрализованных приложений Hedera Hashgraph. К ним относятся Sagewise, Hearo.fm, Carbon, Cryptotask и Arbit..

Инструменты Hedera Hashgraph

Есть много замечательных инструментов Hashgraph. Некоторые из известных инструментов Hashgraph следующие:

  • Hedera Java SDK – SDK на Java для Hedera Hashgraph. Поддерживается Hedera LLC..
  • SDK для Hedera Rust – SDK на Rust, поддерживается сообществом
  • SDK для Hedera Go – SDK в Go, поддерживается сообществом
  • Hedera Test – Испытайте Hedera в действии
  • Инструмент Hedera Java Keygen – Инструмент генерации ключей, используемый в Hedera Hashgraph для управления парами ключей ED25519. Это утилита командной строки.

Сообщества Hashgraph

Вы также можете взаимодействовать с сообществами Hashgraph и стать частью их предложения. Для начала ознакомьтесь с сообществами Hedera на Телеграмма, Medium и Twitter. Если вы хотите поговорить с Hedera Developer Chat, вы можете проверить ссылку здесь.

Вывод

Хэшграф – это захватывающая концепция, которая полностью меняет игровое поле. Это сравнительно быстрее, чем у традиционной технологии распределенного реестра, включая блокчейн. Это явно отличная реализация, но близость к природе может препятствовать ее развитию. Hedra Hashgraph, с другой стороны, является общедоступной сетью Hashgraph, которая надлежащим образом использует Hashgraph. Кроме того, нет майнинга Hashgraph, что делает сеть более справедливой для всех, кто в ней участвует..

Но он не свободен от критики, поскольку использует модель централизованного управления. Итак, что вы думаете о Hashgraph в целом? Будет ли увеличиваться количество приложений Hashgraph в будущем? Прокомментируйте ниже и дайте нам знать.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map