С 2009 года, когда Сатоши Накамото внедрил технологию блокчейн в качестве основного компонента в Bitcoin, блокчейн стал самым популярным словом в индустрии. Успех Bitcoin доказал возможности транзакций на основе блокчейна, и теперь все планируют внедрить технологию блокчейн практически во все. Согласно исследованию Всемирного экономического форума, к 2027 году 10% мирового ВВП может храниться не иначе как на основе технологии блокчейн. Интересно, не правда ли?
Как видите, от цифровых транзакций до процесса голосования, от хранения документов и транзакций до децентрализованной передачи данных – технология блокчейн будет повсюду. Поэтому для разработчиков, работающих в этой сфере, возникает главный вопрос: как узнать, что ваше блокчейн-приложение работает именно так, как вы хотите? Проще говоря, как вы можете протестировать блокчейн?
Для начала давайте немного углубимся в то, что именно представляет собой технология блокчейн, как она может нам помочь и что именно нужно тестировать в блокчейне.
Знаете ли вы, что атрибут boolean async на элементах сценария позволяет внешнему файлу JavaScript запускаться, когда он доступен, без задержки загрузки страницы.
Что такое технология блокчейн?
Блокчейн – это, по сути, распределенная бухгалтерская книга, которая хранит базу данных активов и транзакций, совершенных в одноранговой сети. Блокчейн можно рассматривать как открытую инфраструктуру, в которой могут храниться различные виды активов.
Давайте рассмотрим это на более простом уровне. Представьте, что вам нужно совершить транзакцию на сумму $10 из пункта А в пункт Б. В обычных сценариях транзакция происходит через стороннее приложение или систему обработки платежей. Сначала банк А идентифицирует реквизиты банка Б. Как только это будет сделано, банк А с помощью службы обработки платежей инициирует перевод денег в банк Б с определенной суммой отчислений. Оба банка зарегистрируют транзакцию на своей стороне. Однако за транзакцию взимается комиссия, и Б получает что-то вроде $9,95. Этот процесс достаточно безопасен и имеет множество резервных возможностей для обеспечения безопасности и точности, но даже в этом случае существуют некоторые основные фундаментальные проблемы в процессе транзакции:
-
Задержка в процессе
-
Зависимость от одного посредника, эффективность которого никогда не достигает 100%.
-
В случае какого-либо разрыва в транзакции никто не берет на себя ответственность, и люди продолжают обвинять друг друга.
Проверьте это, атрибут Spellcheck – включение/отключение проверки орфографии браузера на полях “input” и “textarea” для всех форм с этим расширением.
Как блокчейн устраняет эти проблемы?
Подумайте, существует ли система, в которой вам больше не нужно беспокоиться об этих проблемах. Вам просто нужно совершить транзакцию, и есть люди, которые сидят и проверяют вашу транзакцию каждую секунду. Механизм подтверждения называется доказательством блокчейна, и это делается на основе открытого ключа, предоставленного для зашифрованных данных, и это делается всеми слушателями в одноранговой сети. И это реальные люди, а не боты. Поскольку не существует единого органа, проверяющего транзакции, то есть нет централизованной службы транзакций, процесс фактически децентрализован.
Как только более определенного количества людей подтверждает транзакцию, детали транзакции сохраняются в виде блока, и этот блок добавляется в существующую “блокчейн”. Отсюда и название – блокчейн. Более того, блоки после подтверждения и добавления являются неизменными. Каждый блок имеет определенный хэш, связанный с каждым блоком. Эти хэши подобны отпечаткам пальцев, уникальным для каждого блока. Лица, проверяющие процесс транзакций, называются майнерами. Чем больше майнеров, тем выше эффективность транзакции.
Блок состоит из данных, хэша и хэша предыдущего блока. Поскольку он содержит хэш предыдущего блока, следовательно, в блокчейне все блоки содержат данные предыдущих блоков, поэтому становится практически невозможным, чтобы блокчейн был поврежден.
Таким образом, вы можете представить это как распределенную бухгалтерскую книгу, в которой множество людей активно обновляют и проверяют данные о вашей транзакции на основе предоставленного ключа дешифровки. И как только более чем определенное количество людей подтверждает транзакцию, в блокчейн добавляется новый блок.
Для чего необходимо тестирование в блокчейне?
Блок, однажды добавленный в блокчейн, остается там навсегда, и если вы попытаетесь изменить данные в каком-то блоке между цепочками, следующие блоки станут недействительными. Одно изменение в блоке блокчейна приведет к изменению всех последующих блоков. Поэтому важно, чтобы каждый раз, когда добавляется новый блок, он добавлялся правильным способом, поскольку его нельзя изменить позднее. Эксплуатация блокчейна становится сложной, а тестирование блокчейна – еще более сложным.
Кроме того, это способствует проведению крупных транзакций, которые проходят через проверку, шифрование, дешифрование, передачу и т.д., поэтому становится необходимым убедиться, что эти процессы проходят гладко.
Посмотрите это: Scoped CSS – сделайте ваш документ более удобным для чтения и написания, позволив правилам CSS быть привязанными к части документа, основываясь на положении элемента стиля.
Что нужно проверить в блокчейне?
-
Размер блока: Максимальный фиксированный предел блока составляет 1 мегабайт. После введения биткоина средний размер блока в течение первых 18 месяцев составлял менее 30 КБ. Но в декабре 2017 года он колебался в районе 1 МБ. Что если размер блока превысит 1 МБ? Это еще предстоит выяснить, как поведут себя блоки размером более 1 МБ.
-
Размер цепочки: Размер цепочки не ограничен. Поэтому интересно протестировать ее на функциональность и производительность. Например, размер цепочки биткоина продолжает увеличиваться день ото дня.
-
Нагрузка: С таким большим количеством людей в блокчейне нагрузка становится основным параметром для тестирования блокчейна. Рассмотрим пример биткоина. В настоящее время его максимальная пропускная способность составляет 3-4 транзакции в секунду, но что если транзакция в секунду увеличится, как в случае с Visa(2000), Paypal(193) и т.д. Таким образом, нагрузка остается основной проблемой блокчейна, поскольку его производительность падает при увеличении нагрузки.
-
Безопасность: Поскольку в транзакцию вовлечено множество майнеров, обеспечение безопасности является немного сложной задачей. В блокчейне существует многоуровневая система безопасности. Если один из слоев был взломан, мгновенные транзакции не могут быть остановлены. Поэтому необходимо проверить, чтобы один уровень безопасности не влиял на другой.
-
Передача данных: Зашифрованные и расшифрованные данные передаются с компьютера на компьютер, поэтому необходимо проверить, работает ли процесс передачи безупречно. Принимаются ли отправляемые данные на другом конце или происходит потеря между ними. Поэтому необходимо убедиться, что данные не потеряны.
-
Добавление блока: Каждый новый блок добавляется в цепочку после подтверждения подлинности транзакции. Поэтому необходимо проверить, чтобы в системе добавления блоков не было утечек, и блок должен добавляться после аутентификации.
-
Криптографические данные: Криптография является основой технологии блокчейн. Поэтому необходимо убедиться, что данные правильно зашифрованы и расшифрованы.
Это только начало становления технологии блокчейн. Ей еще многое предстоит показать и научить нас. В ближайшие годы мы увидим еще больше блокчейна с тем темпом, с которым он захватывает мир технологий.