Технология Bitcoin показала, как можно использовать криптографически сохраненные записи, модель с ограниченными ресурсами, открытый исходный код и пиринговые сети для создания нового типа успешных приложений.
Децентрализованные приложения гибче, прозрачнее и надежнее, чем современное программное обеспечение, созданное с применением традиционных моделей. Эта книга знакомит вас с основами создания децентрализованных приложений и принципами их разработки на примере нескольких доходных приложений. Причина такого коммерческого уклона объясняется тем, что прибыль (выгода) является основой успешного, надежного и перспективного децентрализованного приложения. Воспользуйтесь ими как трамплином к созданию вашего собственного приложения.
На ранних этапах Всемирная паутина не имела такой практической пользы, как в наши дни, когда мы располагаем бесчисленным множеством приложений и служб на все случаи жизни, но уже тогда она позволяла ощутить, что такое распределенность. Всемирная паутина изначально не имела единого центра. Протокол HTTP соединяет все вычислительные устройства на планете, имеющие подключение к Интернету. В своей работе протокол HTTP опирается на множество доверительных серверов, преобразующих веб-адреса в сетевые адреса серверов. Кроме того, протокол HTTPS добавляет еще один уровень доверительных серверов и центров сертификации. Люди получили возможность устанавливать и включать в работу собственные серверы, к которым могут подключаться другие и хранить на них свои данные. Но вскоре стали появляться серверы приложений, и родилась хорошо известная ныне централизованная модель владения данными. Почему развитие пошло по этому пути?
Ответ прост: потому что этот путь проще и идеологически, и программно. Он оказался самым простым в реализации, и он работал. Один человек или группа оплачивали содержание сервера и получали прибыль от пользователей их программного обеспечения. Одними из первых популярных централизованных приложений стали MySpace и Yahoo!.. Более современные приложения, такие как Uber и Airbnb, децентрализуют отдельные сегменты бизнеса, предоставляя централизованное и доверенное хранилище данных. Они одними из первых позволили извлекать прибыль в разных сферах экономики. Их децентрализованная бизнес-модель предвещает появление еще более децентрализованных приложений.
На некотором этапе развития Всемирной паутины появился новый протокол, разработанный Брэмом Коэном, получивший название BitTorrent. Этот протокол был создан для решения проблемы длительности загрузки огромных медиафайлов через HTTP и как усовершенствование некоторых одноранговых (P2P) предшественников вроде Gnutella, Napster и Grokster. Проблема заключалась в том, что загрузка огромных файлов занимала очень продолжительное время, а с ростом Всемирной паутины увеличивались и размеры самих файлов. В то же время росла емкость жестких дисков и увеличивалось количество людей, подключенных к Интернету. BitTorrent решил проблему, превратив загружающих в раздающих.
Если вам требовался некоторый файл, вы могли загрузить его не из одного, а сразу из нескольких источников. Чем популярнее файл, тем больше пользователей загружало и, соответственно, раздавало его. А чем больше источников, тем быстрее осуществляется загрузка. Сидеры (seeders)1 вознаграждались более высокими скоростями загрузки, а личеры (leechers)2, напротив, наказывались ограничением скорости. Система передачи данных, организованная по принципу «ты — мне, я — тебе», доказала свою эффективность для распространения медиафайлов большого размера, таких как фильмы и записи телевизионных передач.
Протокол BitTorrent продолжает развиваться и для многих является основным способом загрузки огромных файлов, таких как игры или фильмы. Благодаря скорости, устойчивости и наличию механизма вознаграждения протокол BitTorrent лучше подходит для загрузки больших объемов данных, чем HTTP.
Тогда почему развитие Всемирной паутины не пошло по этому пути?
Вероятно, из-за того что HTTP оказался первым, а также благодаря его инфраструктуре и потраченным на его развитие средствам и времени. В настоящее время активно ведутся исследования в направлении модернизации Всемирной паутины с применением BitTorrent-подобной технологии, и они почти наверняка увенчаются успехом, потому что BitTorrent имеет неоспоримые преимущества. Как только появилась технология BitTorrent, разработчики стали использовать ее для создания некоммерческих децентрализованных приложений. Давайте познакомимся с некоторыми примерами последних децентрализованных приложений.
PopcornTime
PopcornTime использует протокол BitTorrent для передачи потокового видео между пользователями в режиме реального времени, действуя подобно BitTorrent-клиенту Netflix. Это настоящий кошмар для американской ассоциации кинокомпаний (Motion Picture Association of America, MPAA). Никакой регулятор не способен установить свои ограничения, и теперь любой может получить свободный доступ к фильмам. PopcornTime оказался практичным децентрализованным приложением, действующим как децентрализованная версия Netflix. Создатели утверждают, что их приложение используется во всех странах и даже в двух странах, где нет Интернета. В PopcornTime отсутствует внутренняя конкуренция, и в нем не требуется поддержка децентрализованного консенсуса, поэтому нет необходимости использовать цепочки блоков. Это приложение просто передает потоковое видео, и тем самым обеспечивается его немалая ценность.
OpenBazaar
Целью разработки OpenBazaar было создание децентрализованной версии Ebay. В приложении OpenBazaar отсутствуют посредники, которые указывали бы продавцам, что они могут продавать, а что — нет, или взимали бы плату за услуги. Оно основано на протоколе BitTorrent, однако проблема заключается в том, что продавцы должны иметь собственные хранилища. Они вынуждены настраивать собственные серверы, чтобы пользователи могли видеть продаваемые товары. В идеале продавцы могли бы просто выгружать свою информацию в сеть, возможно, за небольшую плату, и избавиться от лишнего беспокойства. Но для этого необходима децентрализованная система заинтересованных хранителей (майнеров в терминологии Bitcoin), о которых подробнее рассказывается в главе 4. Для передачи данных в OpenBazaar используется протокол BitTorrent, а для расчетов — криптовалюта Bitcoin.
FireChat
Приложение FireChat появилось в связи с известными событиями — демократическими протестами в Гонконге в 2014 году. Печально известный «Великий китайский файервол» (Great Firewall) блокирует доступ к продемократическим сайтам или к сайтам, распространяющим информацию, идущую вразрез с интересами китайского правительства. Протестующие боялись, что правительство попытается закрыть доступ к различным социальным сетям, чтобы лишить их общения посредством протокола HTTP. Поэтому они применяли FireChat, приложение, использующее новую возможность iOS 7 с названием Multipeer Connectivity (многосторонние соединения), позволяющую телефонам связываться друг с другом без посредников. Из-за отсутствия центральной точки отказа правительству пришлось бы вручную отключать каждый узел, что практически невозможно, поэтому протестующие могли уверенно общаться друг с другом.
Децентрализованный протест в лучшем его проявлении.
Lighthouse
Мы подробно обсудим Lighthouse в главе 5, а пока отмечу, что это кошелек для Bitcoin с набором встроенных умных контрактов. Умные контракты помогают вкладывать деньги в определенные проекты, так же как, например, Kickstarter. Когда проект достигает своей цели, появляется возможность вернуть средства из кошелька Lighthouse проекта, собирающего средства. Вкладчик может в любой момент отозвать свой вклад без уведомления создателя проекта. Lighthouse — отличный пример использования существующей инфраструктуры Bitcoin для создания своего децентрализованного приложения. Lighthouse — это всего лишь пользовательский интерфейс с несколькими встроенными умными контрактами Bitcoin. Приложение работает, опираясь на круг пользователей Bitcoin. Оно открыто, полагается на поддержку децентрализованного консенсуса, не имеет центральной точки отказа, но использует не собственную валюту, а Bitcoin. Это очень полезное приложение, но оно не приносит коммерческой выгоды создателям.
Gems
Gems — это приложение-мессенджер, разработанное с целью создания более справедливой бизнес-модели, чем WhatsApp. Gems выпускает собственную валюту и позволяет рекламодателям платить пользователям напрямую за свои данные, без участия посредников, получающих свою долю. Пользователи тоже могут зарабатывать гемы, привлекая новых пользователей в сеть. Гемы — это метамонеты валюты Gems, основанной на Bitcoin, которые разработчики также получают за разработку и сопровождение программного обеспечения. Круг пользователей Gems постоянно расширяется, поэтому растет ценность валюты. Пользователи заинтересованы в расширении сети и получении дохода, как и разработчики. Gems можно рассматривать как пример долевого участия в развитии децентрализованного приложения. Его исходный код закрыт, поэтому у пользователей нет возможности убедиться в отсутствии единственной точки отказа. Gems — это коммерчески выгодное приложение, но, на мой взгляд, оно не обладает достаточным запасом надежности, чтобы выдержать конкуренцию с продуктами, отвечающими трем другим критериям.
Значит, не существует отдельных децентрализованных приложений, которые удовлетворяли бы всем четырем критериям: отсутствию центральной точки отказа, наличию внутренней валюты, поддержке децентрализованного консенсуса и открытому исходному коду?
Существует довольно много криптовалют, отвечающих всем четырем критериям, но криптовалюты не являются децентрализованными приложениями. Если говорить о децентрализованных социальных сетях, службах организации совместных поездок, поисковых движках, когда берется стек и децентрализуется, тогда ответ на заданный вопрос — нет. Однако это вполне возможно — необходимые технологии существуют, и как только появится что-то новое, многие разработчики устремятся на децентрализованную сторону, чтобы делать серьезные деньги для себя и своих пользователей. Давайте поговорим о некоторых из этих поддерживающих технологий.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Applications
Децентрализованные приложения гибче, прозрачнее и надежнее, чем современное программное обеспечение, созданное с применением традиционных моделей. Эта книга знакомит вас с основами создания децентрализованных приложений и принципами их разработки на примере нескольких доходных приложений. Причина такого коммерческого уклона объясняется тем, что прибыль (выгода) является основой успешного, надежного и перспективного децентрализованного приложения. Воспользуйтесь ими как трамплином к созданию вашего собственного приложения.
История появления децентрализованных приложений
На ранних этапах Всемирная паутина не имела такой практической пользы, как в наши дни, когда мы располагаем бесчисленным множеством приложений и служб на все случаи жизни, но уже тогда она позволяла ощутить, что такое распределенность. Всемирная паутина изначально не имела единого центра. Протокол HTTP соединяет все вычислительные устройства на планете, имеющие подключение к Интернету. В своей работе протокол HTTP опирается на множество доверительных серверов, преобразующих веб-адреса в сетевые адреса серверов. Кроме того, протокол HTTPS добавляет еще один уровень доверительных серверов и центров сертификации. Люди получили возможность устанавливать и включать в работу собственные серверы, к которым могут подключаться другие и хранить на них свои данные. Но вскоре стали появляться серверы приложений, и родилась хорошо известная ныне централизованная модель владения данными. Почему развитие пошло по этому пути?
Ответ прост: потому что этот путь проще и идеологически, и программно. Он оказался самым простым в реализации, и он работал. Один человек или группа оплачивали содержание сервера и получали прибыль от пользователей их программного обеспечения. Одними из первых популярных централизованных приложений стали MySpace и Yahoo!.. Более современные приложения, такие как Uber и Airbnb, децентрализуют отдельные сегменты бизнеса, предоставляя централизованное и доверенное хранилище данных. Они одними из первых позволили извлекать прибыль в разных сферах экономики. Их децентрализованная бизнес-модель предвещает появление еще более децентрализованных приложений.
На некотором этапе развития Всемирной паутины появился новый протокол, разработанный Брэмом Коэном, получивший название BitTorrent. Этот протокол был создан для решения проблемы длительности загрузки огромных медиафайлов через HTTP и как усовершенствование некоторых одноранговых (P2P) предшественников вроде Gnutella, Napster и Grokster. Проблема заключалась в том, что загрузка огромных файлов занимала очень продолжительное время, а с ростом Всемирной паутины увеличивались и размеры самих файлов. В то же время росла емкость жестких дисков и увеличивалось количество людей, подключенных к Интернету. BitTorrent решил проблему, превратив загружающих в раздающих.
Если вам требовался некоторый файл, вы могли загрузить его не из одного, а сразу из нескольких источников. Чем популярнее файл, тем больше пользователей загружало и, соответственно, раздавало его. А чем больше источников, тем быстрее осуществляется загрузка. Сидеры (seeders)1 вознаграждались более высокими скоростями загрузки, а личеры (leechers)2, напротив, наказывались ограничением скорости. Система передачи данных, организованная по принципу «ты — мне, я — тебе», доказала свою эффективность для распространения медиафайлов большого размера, таких как фильмы и записи телевизионных передач.
Протокол BitTorrent продолжает развиваться и для многих является основным способом загрузки огромных файлов, таких как игры или фильмы. Благодаря скорости, устойчивости и наличию механизма вознаграждения протокол BitTorrent лучше подходит для загрузки больших объемов данных, чем HTTP.
Тогда почему развитие Всемирной паутины не пошло по этому пути?
Вероятно, из-за того что HTTP оказался первым, а также благодаря его инфраструктуре и потраченным на его развитие средствам и времени. В настоящее время активно ведутся исследования в направлении модернизации Всемирной паутины с применением BitTorrent-подобной технологии, и они почти наверняка увенчаются успехом, потому что BitTorrent имеет неоспоримые преимущества. Как только появилась технология BitTorrent, разработчики стали использовать ее для создания некоммерческих децентрализованных приложений. Давайте познакомимся с некоторыми примерами последних децентрализованных приложений.
PopcornTime
PopcornTime использует протокол BitTorrent для передачи потокового видео между пользователями в режиме реального времени, действуя подобно BitTorrent-клиенту Netflix. Это настоящий кошмар для американской ассоциации кинокомпаний (Motion Picture Association of America, MPAA). Никакой регулятор не способен установить свои ограничения, и теперь любой может получить свободный доступ к фильмам. PopcornTime оказался практичным децентрализованным приложением, действующим как децентрализованная версия Netflix. Создатели утверждают, что их приложение используется во всех странах и даже в двух странах, где нет Интернета. В PopcornTime отсутствует внутренняя конкуренция, и в нем не требуется поддержка децентрализованного консенсуса, поэтому нет необходимости использовать цепочки блоков. Это приложение просто передает потоковое видео, и тем самым обеспечивается его немалая ценность.
OpenBazaar
Целью разработки OpenBazaar было создание децентрализованной версии Ebay. В приложении OpenBazaar отсутствуют посредники, которые указывали бы продавцам, что они могут продавать, а что — нет, или взимали бы плату за услуги. Оно основано на протоколе BitTorrent, однако проблема заключается в том, что продавцы должны иметь собственные хранилища. Они вынуждены настраивать собственные серверы, чтобы пользователи могли видеть продаваемые товары. В идеале продавцы могли бы просто выгружать свою информацию в сеть, возможно, за небольшую плату, и избавиться от лишнего беспокойства. Но для этого необходима децентрализованная система заинтересованных хранителей (майнеров в терминологии Bitcoin), о которых подробнее рассказывается в главе 4. Для передачи данных в OpenBazaar используется протокол BitTorrent, а для расчетов — криптовалюта Bitcoin.
FireChat
Приложение FireChat появилось в связи с известными событиями — демократическими протестами в Гонконге в 2014 году. Печально известный «Великий китайский файервол» (Great Firewall) блокирует доступ к продемократическим сайтам или к сайтам, распространяющим информацию, идущую вразрез с интересами китайского правительства. Протестующие боялись, что правительство попытается закрыть доступ к различным социальным сетям, чтобы лишить их общения посредством протокола HTTP. Поэтому они применяли FireChat, приложение, использующее новую возможность iOS 7 с названием Multipeer Connectivity (многосторонние соединения), позволяющую телефонам связываться друг с другом без посредников. Из-за отсутствия центральной точки отказа правительству пришлось бы вручную отключать каждый узел, что практически невозможно, поэтому протестующие могли уверенно общаться друг с другом.
Децентрализованный протест в лучшем его проявлении.
Lighthouse
Мы подробно обсудим Lighthouse в главе 5, а пока отмечу, что это кошелек для Bitcoin с набором встроенных умных контрактов. Умные контракты помогают вкладывать деньги в определенные проекты, так же как, например, Kickstarter. Когда проект достигает своей цели, появляется возможность вернуть средства из кошелька Lighthouse проекта, собирающего средства. Вкладчик может в любой момент отозвать свой вклад без уведомления создателя проекта. Lighthouse — отличный пример использования существующей инфраструктуры Bitcoin для создания своего децентрализованного приложения. Lighthouse — это всего лишь пользовательский интерфейс с несколькими встроенными умными контрактами Bitcoin. Приложение работает, опираясь на круг пользователей Bitcoin. Оно открыто, полагается на поддержку децентрализованного консенсуса, не имеет центральной точки отказа, но использует не собственную валюту, а Bitcoin. Это очень полезное приложение, но оно не приносит коммерческой выгоды создателям.
Gems
Gems — это приложение-мессенджер, разработанное с целью создания более справедливой бизнес-модели, чем WhatsApp. Gems выпускает собственную валюту и позволяет рекламодателям платить пользователям напрямую за свои данные, без участия посредников, получающих свою долю. Пользователи тоже могут зарабатывать гемы, привлекая новых пользователей в сеть. Гемы — это метамонеты валюты Gems, основанной на Bitcoin, которые разработчики также получают за разработку и сопровождение программного обеспечения. Круг пользователей Gems постоянно расширяется, поэтому растет ценность валюты. Пользователи заинтересованы в расширении сети и получении дохода, как и разработчики. Gems можно рассматривать как пример долевого участия в развитии децентрализованного приложения. Его исходный код закрыт, поэтому у пользователей нет возможности убедиться в отсутствии единственной точки отказа. Gems — это коммерчески выгодное приложение, но, на мой взгляд, оно не обладает достаточным запасом надежности, чтобы выдержать конкуренцию с продуктами, отвечающими трем другим критериям.
Значит, не существует отдельных децентрализованных приложений, которые удовлетворяли бы всем четырем критериям: отсутствию центральной точки отказа, наличию внутренней валюты, поддержке децентрализованного консенсуса и открытому исходному коду?
Существует довольно много криптовалют, отвечающих всем четырем критериям, но криптовалюты не являются децентрализованными приложениями. Если говорить о децентрализованных социальных сетях, службах организации совместных поездок, поисковых движках, когда берется стек и децентрализуется, тогда ответ на заданный вопрос — нет. Однако это вполне возможно — необходимые технологии существуют, и как только появится что-то новое, многие разработчики устремятся на децентрализованную сторону, чтобы делать серьезные деньги для себя и своих пользователей. Давайте поговорим о некоторых из этих поддерживающих технологий.
» Более подробно с книгой можно ознакомиться на сайте издательства
» Оглавление
» Отрывок
Для Хаброжителей скидка 25% по купону — Applications