Я читал другие вопросы и ответы, такие как Почему клиенты Ethereum загружают всю цепочку блоков? , но никто не отвечает на вопрос, почему кошелек не может просто использовать веб-API для чтения/обновления блокчейна, когда это необходимо, вместо того, чтобы загружать и синхронизировать весь огромный блокчейн.
В течение многих лет я работал со старым менталитетом клиент/сервер, когда клиент просто разговаривает с сервером, на котором находятся данные; несмотря на то, что это одноранговая сеть, почему эта модель здесь не работает? Не мог ли он случайным образом подключиться к чьему-то узлу майнера?
Похоже, даже лайт-клиенты тоже будут скачивать определенное количество блокчейна?
Все ли кошельки считаются «клиентами» по определению?
(Я установил Parity на свой диск C, и он заполнил диск. Похоже, они должны хотя бы предупредить вас о пространстве, необходимом для установки, тогда я бы выбрал другой диск.)
Как упоминалось другими, проблема с API заключается в том, что они являются централизованными источниками информации. Это в основном устраняет единственное наиболее важное ценностное предложение блокчейна. Это, пожалуй, более проблематично, чем полностью централизованная служба. Большинство полностью централизованных служб имеют методы отмены злонамеренных изменений состояния, если они будут обнаружены (например, если кто-то взломает ваш банковский счет, ответственность несет сам банк и должен возместить потерянные деньги). Сотрудники Infura с радостью заявили, что не рассматривают свои услуги как долгосрочное решение. Предполагается, что это лучшая мера, помогающая снизить барьер входа в пространство блокчейна.
Легкие клиенты предназначены для решения проблем с размером при сохранении безопасности блокчейна и, в конечном счете, будут работать с большинством настольных блокчейн-приложений (например, браузер Mist). Хотя они могут быть не «легкими» по стандартам классического взаимодействия клиент-сервер, они значительно легче, чем запуск настоящего узла. После того, как мы стабилизируем и хорошо протестируем легкие клиенты, они позволят использовать гораздо более разумные размеры приложений.
Что касается неклиентских решений, недавно я стал соавтором технического документа, предлагающего решение. Я могу быть предвзятым, но я думаю, что это довольно аккуратно :) Это позволяет значительно повысить гарантии безопасности и децентрализацию, но с накладными расходами, сравнимыми с централизованным API. Я добавлю tl; dr и ссылку ниже, если кому-то интересно узнать больше.
TL;DR: используйте систему в стиле proof-of-stake для создания ненадежных каналов, которые позволяют группам людей с узлами получать вознаграждение за то, что они действуют в качестве конечных точек API, и наказывать за любые вредоносные действия. Мы показываем, что можем спроектировать систему таким образом, чтобы:
Пользователи могут компенсировать свои убытки за счет ставки злоумышленников.
Награда за правду всегда больше, чем за ложь.
Децентрализованная инфраструктура масштабируется пропорционально спросу (благодаря системе вознаграждения в стиле майнинга).
Достаточно легкий, чтобы работать в обычном JavaScript веб-сайта, как и централизованный API.
Не боковая цепь (ура!).
Могли бы, но это вопрос безопасности. Если все полагаются на одни и те же API (например, infura), то вся сеть фактически централизована. Чтобы иметь настоящую децентрализацию, вам нужно, чтобы у всех была копия всей цепочки. Немного играет роль теория игр, и вполне вероятно, что чем больше цепочка станет больше, тем больше людей будет этим заниматься; но ни один уважающий себя производитель кошельков не назвал бы свой кошелек безопасным на данный момент, если бы они использовали API.
Нил Уолтерс
фспмаршалл