Etherlime: open source blockchain development tool
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Untertitel |
| |
Serientitel | ||
Anzahl der Teile | 561 | |
Autor | ||
Lizenz | CC-Namensnennung 2.0 Belgien: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/44257 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
|
FOSDEM 201972 / 561
1
9
10
15
18
19
23
24
27
29
31
33
34
35
38
39
40
43
47
49
52
53
54
55
58
59
60
63
65
67
69
70
78
80
82
87
93
95
97
102
103
104
107
110
111
114
116
118
120
122
123
126
127
131
133
136
137
139
141
142
148
153
155
157
159
163
164
168
169
170
171
172
173
174
181
183
185
187
188
193
196
197
198
199
200
201
205
207
208
209
211
213
214
218
221
223
224
226
230
232
234
235
236
244
248
250
251
252
253
255
256
257
262
263
264
268
269
271
274
275
276
278
280
281
283
284
288
289
290
293
294
296
297
300
301
304
309
311
312
313
314
315
317
318
321
322
327
332
333
334
335
336
337
338
339
340
343
345
346
352
353
355
356
357
359
360
362
369
370
373
374
375
376
377
378
383
384
387
388
389
390
391
393
394
395
396
406
408
409
412
413
414
415
419
420
425
426
431
432
433
434
435
436
438
439
440
441
445
446
447
448
453
455
457
459
466
467
471
473
474
475
476
479
480
484
485
486
489
491
492
496
499
500
502
505
507
508
512
515
517
518
529
531
533
534
535
536
539
540
546
550
551
552
553
554
555
557
558
559
560
561
00:00
SoftwareentwicklerOpen SourceFramework <Informatik>E-MailSoftwarePersönliche IdentifikationsnummerEDV-BeratungKomponententestHardwareFramework <Informatik>ZweiVideokonferenzOffene MengeGruppenoperationSchreiben <Datenverarbeitung>Twitter <Softwareplattform>Projektive EbeneDifferentePunktwolkeProzess <Informatik>Design by ContractDemo <Programm>CodeComputerspielKonfiguration <Informatik>ProgrammbibliothekStellenringRechter WinkelMultiplikationsoperatorCoxeter-GruppeStabilitätstheorie <Logik>Open SourceVersionsverwaltungSoftwareDemoszene <Programmierung>Ordnung <Mathematik>Reelle ZahlProgrammierumgebungKette <Mathematik>Installation <Informatik>EDV-BeratungSoftwareentwicklerEinfache GenauigkeitAdressraumFahne <Mathematik>PlastikkarteYouTubeGüte der AnpassungKollaboration <Informatik>SoftwaretestEinfach zusammenhängender RaumPublic-Key-KryptosystemE-MailTransaktionStörungstheorieSampler <Musikinstrument>Dienst <Informatik>Produkt <Mathematik>Web-SeiteFlächeninhaltHydrostatikBestimmtheitsmaßHyperbelverfahrenRechenwerkMaßerweiterungMathematikGeradeBenutzerbeteiligungInterface <Schaltung>VererbungshierarchieDokumentenserverPunktTheoremQuaderZahlenbereichZellularer AutomatComputeranimation
09:50
InternetworkingEinfach zusammenhängender RaumProjektive EbeneSpielkonsoleDemo <Programm>MultiplikationsoperatorDesign by ContractProzess <Informatik>PlastikkarteComputeranimation
11:25
Offene MengeElektronische PublikationInstantiierungSoftwaretestKette <Mathematik>BitProjektive EbeneHidden-Markov-ModellSkriptspracheDesign by ContractLokales NetzFaktor <Algebra>SoftwareGeradeStellenring
12:47
SystemaufrufRankingSoftwareZahlenbereichKette <Mathematik>StellenringBrowserSchreiben <Datenverarbeitung>Computeranimation
13:14
GravitationsgesetzDämon <Informatik>Konvexe HülleOffene MengeGeradeEinfache GenauigkeitSoftwareDesign by ContractDefaultPunktSoftwaretestKette <Mathematik>PlastikkarteElektronische PublikationSkriptspracheProgramm/Quellcode
14:24
DualitätstheorieRechenwerkKomponententestStellenringVerkehrsinformationProzess <Informatik>SoftwareRPCEinfache GenauigkeitDesign by ContractDienst <Informatik>SkriptspracheSoftwaretestGewicht <Ausgleichsrechnung>TransaktionSchreiben <Datenverarbeitung>Güte der AnpassungMultiplikationsoperatorDefaultResultanteCodeZahlenbereichSampler <Musikinstrument>AdressraumRechenwerkGeradePunktPlastikkarteFaktor <Algebra>Lokales NetzCachingSchnittmengeComputeranimation
16:47
Offene MengeGEDCOMGewicht <Ausgleichsrechnung>SoftwareBitRPCSoftwaretestDifferenteDienst <Informatik>StellenringTermProgramm/Quellcode
17:22
Framework <Informatik>TransaktionCachingSpieltheorieQuaderGeradeProgrammbibliothekPlastikkarteDifferentePrimzahlzwillingeDesign by ContractInternetworkingKette <Mathematik>Kartesische KoordinatenDokumentenserverQR-CodeZahlenbereichKomponententestBitGruppenoperationProjektive EbeneFunktionalAdditionBenutzerbeteiligungInterface <Schaltung>SoftwaretestMultiplikationsoperatorOrdnung <Mathematik>CASE <Informatik>TypentheorieAdressraumHash-AlgorithmusSystem-on-ChipComputeranimation
21:33
GammafunktionComputeranimation
Transkript: Englisch(automatisch erzeugt)
00:14
Go. OK. Hello, everybody, and thank you for joining me today at this session.
00:21
I'm going to present you a really cool and interesting topic that you may put into use right after the presentation is finished. I'm not going to promise you supercars, Lamborghinis, and stuff like that. I'm just going to promise you a real stable open source blockchain development tool. But first of all, I have a couple of questions for you.
00:42
Does anybody here try to develop an Ethereum smart contract? OK, really cool. How many of you try to deploy it on the mainnet, on the Ethereum mainnet? Really cool. How many of you try to deploy it without a framework or a tool?
01:03
Yeah, it's framework or tool, yeah. So you're using Truffle? OK, thank you. So I used to use Truffle before, but today I'm going to present you Eterwine. It's an open source blockchain development framework, or you can call it just a tool, that saves developers' lives.
01:20
But to understand why I'm sitting here in front of you talking about blockchain, let me first introduce myself and our company. My name is Sugnyan Chikuf, and I'm software developer at Lime Chain. Here you can find my contacts, so do not hesitate to contact me if you have further questions about Eterwine.
01:40
So Lime Chain is located in Bulgaria, and we are here with our CTO, Chris, over there, so say hi to Chris. And we are a blockchain consulting and development company, and we provide services for private and public blockchain development, smart contracts development and audit, crowd sale services, and et cetera.
02:02
We also have plenty of blockchain-related products, and you can see some of them over here. We have a Lime Tracker, that is a solution for, how to say, it's a solution,
02:21
a very good solution for supply chain, transability, and transparency. We have Lime Pay, which is a solution for executing Ethereum transactions with fiat money. And of course, we have Eterwine, that it's development tool targeting developers
02:43
in the Ethereum realm that you know how to use right after this presentation. Before we proceed with the main topics for today, let me introduce you our collaboration channels that I encourage you to join,
03:01
so you can follow us, and you can understand the really hot news about Eterwine. First of all, you can see our Telegram community group, where you can join in face-to-face and chat with the developers that are standing behind Eterwine. You can chat directly with me and the people
03:21
from our development team that is standing behind Eterwine. New members in the community are more than welcome. You can ask us everything regarding Eterwine or regarding blockchain development. We have a YouTube channel where you can follow us. You can find there useful videos of how-tos
03:42
or also Ethereum blockchain news. We have a Telegram group that I encourage you to follow us in Twitter, sorry, Twitter group. Also, you can find our GitHub repository, where you can join open initial or open pull request for a feature that you need.
04:03
And at the end, you can see our document page, where you can find our docs of Eterwine, how to use, and what exactly is Eterwine, and all the extended features.
04:21
But first of all, let me answer you what is Eterwine. As I said, Eterwine is open source blockchain development tool that is based on Eter's JS library. But how Eterwine was born? Eterwine was born because of all other buggy-tos that are based on Web3JS library.
04:42
Eterwine adds something really valuable for the developers. It adds verbose-ness during the whole process of development and deploy. What does it mean? It means that every time you execute a command in the command line interface, you know exactly what is happening behind the scenes.
05:01
We have a verbose-ness during the whole process. You know what exactly is happening in order to support your development and to know where exactly you are in the middle of the process. Eterwine also is really valuable because it's really,
05:25
small and easy tool to install. Why developers might use Eterwine? Developers use Eterwine because it's a framework or tool that makes you in the process
05:42
and using a single tool during the whole process. You don't have to search a tool for compiling your smart contracts. You don't have to search a tool for developing your smart contracts or you don't have to search a tool for deploying your smart contracts. What Eterwine can do for us?
06:01
Eterwine can set up a project for us and for me as a developer, this is really important. As I'm starting using a new technology, I always spend a couple of hours searching for how to set up the project, how to make the environments and how to do all the stuff that I can start on. Eterwine can do this for you
06:22
by just writing a single command and I'm going to show you in a couple of minutes. I have a demo for you prepared. So I'm going to show you really in life how you can set up your project for just a second. Eterwine can compile our smart contracts. Something more, if you go into the documentation,
06:42
you can see all the extended options for the compilation. You can use different SUSE versions. You can compile different smart contracts. You can compile even smart contracts that are not loaded in your project. Eterwine also can deploy our smart contracts and you can deploy just with a single command.
07:02
Something more, Eterwine can run a local blockchain development network for you that you can test all of your smart contracts. This can be done again with a single command. Something more, this local blockchain development network comes with 10 static accounts
07:20
that every time you're starting this blockchain network, they're the same. So you can use it in your projects. You don't have to change private keys and addresses and these accounts are full loaded with billions of headers. This is really useful when you're making a project for ICO and you have to test it, for example, you don't have to worry that you will run out of headers.
07:43
You have 10 prepared accounts with billions of headers loaded. Eterwine can test your code you can run unit tests as you can run unit tests as you can write unit tests for all of your other projects
08:01
Eterwine has a cloud coverage option so you can check what is your cloud coverage that is really useful for developing smart contracts. The main benefits of Eterwine are that you have a single tool doing all of this stuff.
08:21
You don't have to browse through the tools and use different tools for all of these steps. Something more, it's stable. We have more than 96% cloud coverage in the library. If you go in the GitHub page, you can see these numbers.
08:41
So it's open source. All of you can participate in the development so we encourage you to join us in our community groups, open issues, comment about some features that you need. We encourage that. Also one of the biggest main benefit
09:01
is that actually you can use it for all of your Ethereum projects. As soon as we are planned to release some cool features that I'm going to comment after the demo and you will see what are the really main benefits of Eterwine.
09:22
The features. So I'm going to present you how to install Eterwine just with a single command. I'm sorry, how to init a project. I have already installed it but you can install it with just a single command. Just run npm install Eterwine with a global flag
09:40
and depends on the network connection here and your hardware speed. You will have Eterwine in just a few seconds. So I'm going to present you how to initialize a project and I'm going to comment what this project has. You will see that the initialized project has everything for you needed
10:02
to just start developing Ethereum smart contracts. I have a empty folder here prepared for the demo. You can see that it's empty. I'm going to write the Eterwine init command
10:22
and you will see the robustness process that I told you earlier. It's really working here. You see what is happening all the time in the console. Depends from the internet connection.
10:42
It may spend some time. We hope to be really fast. Okay, I will wait 10 more seconds
11:02
and if the internet is still so bad, I have already generated another project that is prepared for you if the internet fails. Yeah, yeah, it's, okay, we're here.
11:22
Thank you for your patience. Okay, now I'm opening the already generated project with Eterwine. So you can see we have a couple of stuff here. First of all, what are you going to have? We have a contract folder.
11:40
Hmm, looks really interesting. I have a contracts folder already so I don't have to think where I have to put my contracts. Maybe they will go here. And I have a line factory contract. Interesting. I have a really finished contract that is ready to be test, compiled and deployed. Okay, cool.
12:02
I have a deployment folder. Well, I have a deploy.js script. Here you can see that I have already a deployment scenario. This is the file that you can put your deployment scenarios. For example, maybe I will have to zoom a little bit
12:21
and I will hide this one. You can see that I have a deployment scenario that I'm making a deployer that is a new instance from Eterwine, Eterwine Ganache deployer. What this deployer does? This deployer knows about your local network, your local blockchain network
12:42
that you can run with a single command. How you can run this blockchain network? I'm going to show you right now. I'm going to open a new tab. I'm going to write Eterwine Ganache command. You will see that I started a blockchain local development network
13:03
that is running already on a local host with this port number, and I have 10 predefined accounts ready to be used. Something more. This Eterwine Ganache deployer knows about this network on this port, so you can deploy your smart contract
13:21
with just a single command. By default, it uses the first account, but if you go into the documentation, you can see all the different extended features that you can give to this deployer and this network. You can start this blockchain network on whatever port you want, and you can make your deployer to deploy
13:41
on whatever port you need and using whatever of the 10 accounts you need. So this is for the deployment scenarios scripts. I have a test folder that you can see here, and it's really cool for me that I have just an example test file
14:02
where I can see that I have already test scenarios about my smart contract. So as you can see, this is a good starting point for you to start developing an Ethereum smart contract. Something more. You have everything here prepared to be compiled, tested, and deployed,
14:21
and I'm going to show you how. First of all, I'm going to compile my smart contract. I'm going to write ethereum compile, and you can see the verbose process.
14:40
My compilation finished successfully. I'm going to deploy my smart contract using just the default settings, and I'm going to deploy it on my local blockchain network.
15:03
Okay, you can see the verbose process and the report after the deployment script finished successfully. You can see that my contract with NameLineFactory has been deployed successfully. I have the transaction here, and I have the result that is really the address of the smart contract. Something more.
15:21
For example, imagine that I'm closing this now. It's finished the deployment script, and I'm closing it, and I'm going to home. And then I start to think, oh, what was my address of the smart contract? This is my local network,
15:41
but for example, imagine that I'm deploying through our favorite in full service to the main net or to some of the remote test networks. I can, every time I want, I can show this report by ethereum history command. We have a ethereum history command that you can see all of your report, all of your deployments that have been done successfully.
16:03
I'm going to test my smart contracts locally, with a single command, ethereum test. So this will run my unit tests. Hopefully they finish successfully. And I'm going to show you the coverage command.
16:30
So as soon as coverage command is completed, you will see again a report with all of your code coverage numbers.
16:41
Or hopefully I have hundreds from hundreds. Good. So here, imagine that I don't want to deploy on my local Ganache network. We at Ettorelime have different kind of Ettorelime deployers. So they're ready to use for you.
17:01
No matter if you want to deploy through in full service on the main net or to the remote test networks, we have prepared for you a couple of different deployers. Okay, now I want to talk a little bit
17:23
about the future development. We are going to release really soon two really important features. The first feature is that we are going to provide for our users a ready to use decentralized applications out of the box.
17:41
What I mean? I mean that you will type a single command in the command line interface, and you will get a really working decentralized application using a really cool use case, a game, a blockchain game, or a blockchain decentralized application
18:00
that is ready to use. So you will have a front-end application with your favorite front-end framework. No matter it will be Angular or React or something else that you love, you will have predefined out of the box ready to use decentralized applications.
18:21
The second really cool feature that we are going to release is being able to debug transactions with transaction hash. So imagine that you're using some other kind of library, for example, Web3.js library, and your transaction is failed.
18:40
In order, and failing a transaction, if you have a transaction hash, you can start the book, your transaction and your smart contract using just this transaction hash. Now I have a special challenge for you, for all of you. Please scan this QR code with your phones.
19:00
This will lead you to a GitHub repository. In this GitHub repository, you will find a README with step-by-step what you have to do to experience either one. We have for you a generated project with a really cool feature, smart contract that is making a deposit.
19:22
It's like a bank deposit. We have for you the unit tests and we have the challenge for you to write an enroll function in the smart contract, enroll method. So this enroll method would give to the first three people who are deposit to this smart contract,
19:41
additional ethers. In the README, you will find everything you need step-by-step described. So I encourage you, whenever you feel free and you want to start using etherwime, please enter in our GitHub repository using this QR code and do the repository and do the challenge.
20:04
At the end of the steps, you will find that you have to join our Telegram community group and you will have to post your smart contract address. So I assume that you will develop and deploy your smart contract using some of the remote testnets,
20:22
no matter is it linked by Colen or Robsten. Now it's time for questions and answers. Any questions? Yes, over there.
20:41
Wait for the microphone, please. Thank you. Why do you need internet to we need projects? Because we are installing SoC library. Okay. Yeah. And why do you wrap Ganache? We wrap the Ganache, but we extend the Ganache
21:02
because we need more money in our accounts and we are making our own 10 predefined accounts that are full with ethers, different number of ethers than the ordinary Ganache. Okay, thank you.
21:25
Anybody else? Okay, hopefully I will see you in the community. Don't hesitate to contact me.