Простое недоразумение о солидности - как и где оно использует блокчейн? - PullRequest
0 голосов
/ 02 апреля 2019

У меня довольно «новое» понимание блокчейна, я достаточно хорошо разбираюсь в том, как он сохраняет данные.

У меня также есть понимание синтаксиса солидности - довольно легко подобрать для кого-то ужезнакомы с принципами ООП.

Я не могу понять, как основательность использует технологию блокчейна ethereum.

Вопрос / с

Солидность выглядит как объектно-ориентированный язык программированиядля меня, в какой момент он сохраняет данные в блокчейне?

Что означает «блок», учитывая тот факт, что примеры просто выглядят как классы - каждый экземпляр этих классов является «блоком»?

Контекст:

Пример прочности, с которым я работаю: https://solidity.readthedocs.io/en/v0.5.6/solidity-by-example.html

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

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

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

После развертывания смарт-контракта вы получаете адрес для доступа к смарт-контракту для взаимодействия.

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

Надеюсь, теперь тебе ясно.

Спасибо smarx и jfc за исправление:)

0 голосов
/ 03 апреля 2019

В какой момент он сохраняет данные в блокчейне?

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

Что означает «блок», учитывая тот факт, что примеры просто выглядят как классы - каждый экземпляр этих классов является «блоком»?

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

Это: блоки - это то, как блокчейн хранит данные.SC - это правила, которые определяют, как изменяются ваши данные.

Является ли каждый блок «версией» всех свойств, принадлежащих контракту?

Нет.Блок - это группа транзакций.Транзакция - это операция, которая изменяет ваши данные.

Существует экземпляр смарт-контракта на блок

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

Интеллектуальный контракт почти похож на API, который получает и устанавливает данные в цепочке блоков?

Вот и все

Является ли смарт-контракт, по сути, эквивалентным промежуточному программному обеспечению, я могу написать сам

Но, говоря об Ethereum, на данный момент выбора нет: просто код солидности(ну, есть еще пара языков, но я думаю, что они почти не используются).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...