Comments 16
За ссылку большое спасибо, почему то ни разу не попадал на них в выдаче гугла.
Вообще мне кажется, что мир еще не дорос до тьюринг полных смарт контрактов, нужна какая-то система их формальной верификации, да и языки, заточеные именно под это дело, а не универсальный javascript, а то очень уж легко написать контракт, который неожиданным образом потеряет все твои деньги.
Умные контракты, работающие на Ethereum, могут распоряжаться только валютой этой системы (Ether) или классической валютой тоже (доллар, евро)? Могул ли умные контракты оказывать воздействие на что-то вне блокчейна, в котором работают?
2. Не очень понял вопрос, в смысле оказывать влияние?
2 Не очень понял вопрос, в смысле оказывать влияние?
Могут ли контракты сделать так, чтобы что-то произошло вне блокчейна? Например, запустился бы квадрокоптер, доставляющий товар, или человеку пришло бы СМС.
Контракт в mist создаётся уже второй час…

и отменить то никак.
Учусь по статье. Вношу корректировки, чтобы работало:
- на приватном блокчейне (Что выбрать, тестнет или приватный блокчейн?), чтобы стартовал и майнил мгновенно, а не один блок в час;
- с последними версиями софта;
- и если на системе уже был клиент Ethereum.
О запуске geth console и Mist на приватном блокчейне и с отдельной конфигурацией:
export DEVNET_DIR=~/eth/dev-net
mkdir -p ${DEVNET_DIR}
alias geth-dev="geth --datadir ${DEVNET_DIR}/.ethereum_private --dev"
alias geth-dev-console="geth-dev --rpc --rpcaddr '0.0.0.0' --rpcapi 'admin,debug,miner,shh,txpool,personal,eth,net,web3' console"
alias mist="/Applications/Mist.app/Contents/MacOS/Mist"
alias mist-dev="mist --rpc http://localhost:8545"
# Create an empty chain:
geth-dev init ${DEVNET_DIR}/genesis.json
Где genesis.json можно взять здесь.
В Mist не обнаружил меню Contracts, зато нашёл Develop — Open Remix IDE.
В ней можно создать новый контракт в sol-файле, потом во вкладке Run задать его стартовые параметры и адрес, и загрузить в блокчейн.
"Закопать" контракт в чейн пока не удаётся, в логе mist
получаю [ERROR] ipcProviderBackend - Send request failed TypeError: Cannot read property 'contractAddress' of null
. Будет прогресс — продолжу этот комментарий.
На приватном блокчейне Mist показвает "Private net", но останавливается на этапе "Ethereum node needs to sync, please wait… Looking for peers...". Может быть, это нормально.
Запуск контракта в блокчейн на такой среде падает с ошибкой Mist: [ERROR] ipcProviderBackend - Send request failed TypeError: Cannot read property 'contractAddress' of null
.
В интернете нет, что делать — непонятно, переключаюсь на testnet.
> miner.start()
null
Замеченные отличия, от поведения описанного в статье:
geth --dev console
WARN [12-16|13:14:02] No etherbase set and no accounts found as default
INFO [12-16|13:14:04] Using developer account address=0x70F951cF84FC37CA1fC43e7565fee776Acf1Cce8
То есть у меня он сам создал какой то адресс, и он в eth.accounts[0]
Когда я сделал personal.newAccount(«123»)
То сгенерился еще один адрес, и он попал в eth.accounts[1]
Перед запуском майнера пробовал miner.setEtherbase(eth.accounts[1])
и miner.setEtherbase(eth.accounts[0])
На поведение не влияет, майнер выдает null
Подскажите, что делать?
Пишем умный контракт на Solidity. Часть 1 — установка и «Hello world»