“ Mr Vitalik .. come here, I want to see you ”

in #blockchain7 years ago (edited)

2017 My first steps into Ethereum world

Of course I’m referring to the first telephone conversation, illustrating what I felt when I managed to send a custom coin to somebody (actually: from one of my test accounts to another) for the first time.

And of course you are smart enough to notice that this is a false analogy, as I have not invented Ethereum, just started to play with it.

Anyway, it was a big relief, when I succeeded after several hours of failed attempts — which you can actually spare for yourself (more on these attempts later).

When you start thinking about blockchain programming, you should bear in mind, that

there are two different stages, which are very different in complexity: writing smart contracts, and creating distributed applications.

1. The easier adventure: writing and running smart contracts.

Smart contracts describe the business logic of your applications, eg how you want to issue a custom coin, what actions with your coin you want to support for its holders, etc. Or the rules of a marketplace or a voting system. The contracts can be written eg in the Solidity language, which is a variant of JavaScript.

The contracts can be deployed with existing applications, like the Ethereum Wallet to the test Ethereum blockchain for testing, or to the live Ethereum blockchain for live usage.

In order to start playing with smart contracts, you don’t need anything more than that.

If you are proficient in JavaScript, you just need to read through the syntax rules of Solidity, and you are good to go.

If not, but you are familiar with any other programming language (like me with Python), you will be able to get by quickly by analogy, after putting some effort into understanding the basics of JavaScript.

(If you are not familiar with any programming language altogether, I cannot help you, you should start a crash course on JavaScript. It’s easy, and very useful for other purposes anyway. In other situations I would recommend Python as a first programming language to learn, but if you are into Ethereum, JavaScript is the right choice.)

In any way, it is good practice to start with fully functional contract examples, which you can copy + paste modularly.

You can find tutorials on the Ethereum web page, which guide you through the process of building different kinds of contracts from the basic “minimum viable” versions to quite complex setups:

. They have a tutorial for issuing a new currency.
. Another one shows you how to set up a crowd sale platform.
. And here is a third one on how to create a voting system aka DAO (= Distributed Autonomous Organization).

Warning:

When you start reading forums, eg on the Ethereum web page, you will surely see posts very soon suggesting you deploy your contracts with an application called testrpc (RPC standing for Remote Procedure Call) to the test blockchain, and create distributed web apps to interact with them using the Truffle framework.
Don’t start with this.

Believe me, it adds unnecessary complexity to your initial steps towards understanding the basic mechanics of smart contracts.

    Been there, done that — more on that later.

You should do the following instead:

  1. Download the Ethereum Wallet from the Ethereum web page,
  2. choose connecting it to the test chain,
  3. start mining Ether (in the menu Develop > Start mining — you will get test Ether, of course, which you cannot sell for money), so that you can pay for your transactions,
  4. follow the instructions in the above mentioned tutorials to deploy your contracts (if you have multiple contracts in one script because of inheritance, you will be prompted to choose one of them before deploying; in the case of the cryptocurrency tutorial mentioned above I’ve chosen “MyAdvancedToken”, because it inherits from “owned” and “token”, see contract MyAdvancedToken is owned, token{...}, and it worked — choosing another contract may or may not work, I didn’t try)
  5. create multiple accounts with the wallet, so that you can send coins (or Ether for that matter) between them
  6. you can use the GUI (= Graphical User Interface) of the wallet to issue commands corresponding to the functions contained in your contract.

In this way, you will also have your “Mr Vitalik .. come here, I want to see you” moment, eg when you send coin from one of your account to another, very soon.

Limitations:

The Ethereum Wallet is just the first step. If you want to get a lot of users who use your Ethereum based system, you will have to build apps (so called distributed apps of DApps) for them as an interface. More on that later.

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.029
BTC 60883.28
ETH 2401.75
USDT 1.00
SBD 2.63