Contract Greeter - Windows - Надежность браузера

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

https://medium.com/ziggify/blockchain-stack-1-installing-ethereum-geth-and-your-first-smart-contract-7e9c4105e5eb

Но я ничего не понимаю... :( Поскольку у меня нет solC, я использую браузер Solidity. Когда я копирую код Web3 в Geth

Вот этот :

var _greeting = /"Hello World"/ ;
var hello world_greeterContract = web3.eth.contract([{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"inputs":[{"name":"_greeting","type":"string"}],"payable":false,"type":"constructor"}]);
var hello world_greeter = hello world_greeterContract.new(
   _greeting,
   {
     from: web3.eth.accounts[0], 
     data: '0x6060604052341561000c57fe5b6040516103ac3803806103ac833981016040528080518201919050505b5b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b806001908051906020019061008292919061008a565b505b5061012f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100cb57805160ff19168380011785556100f9565b828001600101855582156100f9579182015b828111156100f85782518255916020019190600101906100dd565b5b509050610106919061010a565b5090565b61012c91905b80821115610128576000816000905550600101610110565b5090565b90565b61026e8061013e6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806341c0e1b514610046578063cfae321714610058575bfe5b341561004e57fe5b6100566100f1565b005b341561006057fe5b610068610185565b60405180806020018281038252838181518152602001915080519060200190808383600083146100b7575b8051825260208311156100b757602082019150602081019050602083039250610093565b505050905090810190601f1680156100e35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561018257600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b61018d61022e565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102235780601f106101f857610100808354040283529160200191610223565b820191906000526020600020905b81548152906001019060200180831161020657829003601f168201915b505050505090505b90565b6020604051908101604052806000815250905600a165627a7a723058208695872d7606c3275627d368d0f725b78862809aac0616b576a51d565efc1d1c0029', 
     gas: '4700000'
   }, function (e, contract){
    console.log(e, contract);
    if (typeof contract.address !== 'undefined') {
         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
    }
 })

И этот :

var hello world_mortalContract = web3.eth.contract([{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"}]);
var hello world_mortal = hello world_mortalContract.new(
   {
     from: web3.eth.accounts[0], 
     data: '0x6060604052341561000c57fe5b5b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b6101088061005f6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806341c0e1b514603a575bfe5b3415604157fe5b60476049565b005b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141560d957600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b5600a165627a7a72305820d438d032342c88b4259801b5769aed2e2e221aa8058b7efd4f39112ee8b73b3f0029', 
     gas: '4700000'
   }, function (e, contract){
    console.log(e, contract);
    if (typeof contract.address !== 'undefined') {
         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
    }
 })

Я получил эти 2 сообщения об ошибках:

>
>
undefined
>
(anonymous): Line 1:11 Unexpected identifier (and 1 more errors)
>
...
...
......
......
......
......
......
......
.........
.........
......  })
(anonymous): Line 1:11 Unexpected identifier (and 7 more errors)
>
...
......
......
......
......
......
......
.........
.........
......  })
(anonymous): Line 1:11 Unexpected identifier (and 4 more errors)

Я совсем запутался, уже полдня читал гайд и другие туториалы по тому же контракту, но никто не объясняет, как решить эту проблему :( Каждый раз кажется, что кто-то использует немного другой метод... это сводит меня с ума!

Кроме того, кто-нибудь знает, как правильно узнать о смарт-контракте и о том, как его использовать? У меня есть частный блокчейн с 1 статическим узлом и 3 узлами.

Большое спасибо :)

Ответы (1)

Добро пожаловать в Ethereum — мир драконов и инструментов, которые постоянно опережают любую документацию.

Я бы посоветовал вам начать играть со смарт-контрактами (например, с приветствием) только в браузере с помощью Remix . Вы можете скопировать и вставить пример приветствия в редактор браузера и поиграть со своим смарт-контрактом. Все будет работать только в вашем браузере, но уже вести себя так же, как «настоящий» блокчейн.

Если вы готовы перейти на «настоящую» общедоступную цепочку блоков, вам понадобится эфир для отправки любых транзакций (вы платите за что-то, называемое «газом», в качестве комиссии за транзакцию). После того, как вы купили немного эфира или получили немного от друга и действительно хотите войти в общедоступную основную сеть и взаимодействовать с ней через geth, вам нужно сначала создать учетную запись в консоли geth JS через web3.personal.newAccount. Затем вы можете проверить, сработало ли это, web3.eth.accountsи скопировать адрес в проводник блокчейна, такой как etherscan.io, и увидеть свой баланс. Вы также можете перевести себе немного эфира, чтобы начать работу. Только после этого вы можете использовать код развертывания (чтобы перенести этот контракт в основную цепочку Ethereum), как показано в примере, который вы нашли.

Привет ! Спасибо за ваш ответ ! :) Я уже успешно развернул приватный блокчейн с 4 узлами, отправил эфир между ними, проверил их баланс, разблокировал аккаунт ^^ Вот почему я пытаюсь развернуть самый простой контракт, но кажется, что это сложнее, чем это выглядит... :(