We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Etherlime: open source blockchain development tool

00:00

Formale Metadaten

Titel
Etherlime: open source blockchain development tool
Untertitel
An open source tool for Ethereum developers
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
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
With Etherlime we aim to solve issues in the deployment of smart contracts and to allow developers to write their own scripts. This way they are not constrained to just the deployment transactions but also they can use the newly deployed contracts right away as part of the initialization sequence. In September 2018 our project received funding from Ethereum foundation, Ethereum community fund and ETHPrize. Etherlime is an Ethereum development and deployment framework based on ethers.js created by our team in LimeChain. The framework was born out of necessity, hardships, and trouble in the development and deployment of ethereum smart contract. We are trying to ease the pain of deployment, compilation and unit testing and add much-needed stability to the process. In our mind ethers.js is a much more stable alternative than web3.js for the moment, and this is one of the main reasons why we created it.
10
58
80
111
137
Vorschaubild
15:21
159
Vorschaubild
18:51
168
Vorschaubild
26:18
213
221
Vorschaubild
15:22
234
Vorschaubild
49:51
248
Vorschaubild
23:06
256
268
283
Vorschaubild
28:38
313
Vorschaubild
1:00:10
318
Vorschaubild
21:35
343
345
Vorschaubild
36:13
353
Vorschaubild
18:44
369
370
373
Vorschaubild
44:37
396
Vorschaubild
28:21
413
Vorschaubild
16:24
439
455
Vorschaubild
25:10
529
Vorschaubild
15:36
535
Vorschaubild
28:04
552
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
InternetworkingEinfach zusammenhängender RaumProjektive EbeneSpielkonsoleDemo <Programm>MultiplikationsoperatorDesign by ContractProzess <Informatik>PlastikkarteComputeranimation
Offene MengeElektronische PublikationInstantiierungSoftwaretestKette <Mathematik>BitProjektive EbeneHidden-Markov-ModellSkriptspracheDesign by ContractLokales NetzFaktor <Algebra>SoftwareGeradeStellenring
SystemaufrufRankingSoftwareZahlenbereichKette <Mathematik>StellenringBrowserSchreiben <Datenverarbeitung>Computeranimation
GravitationsgesetzDämon <Informatik>Konvexe HülleOffene MengeGeradeEinfache GenauigkeitSoftwareDesign by ContractDefaultPunktSoftwaretestKette <Mathematik>PlastikkarteElektronische PublikationSkriptspracheProgramm/Quellcode
DualitätstheorieRechenwerkKomponententestStellenringVerkehrsinformationProzess <Informatik>SoftwareRPCEinfache GenauigkeitDesign by ContractDienst <Informatik>SkriptspracheSoftwaretestGewicht <Ausgleichsrechnung>TransaktionSchreiben <Datenverarbeitung>Güte der AnpassungMultiplikationsoperatorDefaultResultanteCodeZahlenbereichSampler <Musikinstrument>AdressraumRechenwerkGeradePunktPlastikkarteFaktor <Algebra>Lokales NetzCachingSchnittmengeComputeranimation
Offene MengeGEDCOMGewicht <Ausgleichsrechnung>SoftwareBitRPCSoftwaretestDifferenteDienst <Informatik>StellenringTermProgramm/Quellcode
Framework <Informatik>TransaktionCachingSpieltheorieQuaderGeradeProgrammbibliothekPlastikkarteDifferentePrimzahlzwillingeDesign by ContractInternetworkingKette <Mathematik>Kartesische KoordinatenDokumentenserverQR-CodeZahlenbereichKomponententestBitGruppenoperationProjektive EbeneFunktionalAdditionBenutzerbeteiligungInterface <Schaltung>SoftwaretestMultiplikationsoperatorOrdnung <Mathematik>CASE <Informatik>TypentheorieAdressraumHash-AlgorithmusSystem-on-ChipComputeranimation
GammafunktionComputeranimation
Transkript: Englisch(automatisch erzeugt)
Go. OK. Hello, everybody, and thank you for joining me today at this session.
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.
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?
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.
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.
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.
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,
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
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,
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
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
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.
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.
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.
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.
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,
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
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?
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
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,
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.
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
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.
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
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.
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.
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
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.
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
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
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
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.
It may spend some time. We hope to be really fast. Okay, I will wait 10 more seconds
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.
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.
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.
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
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
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
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
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
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
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,
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.
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.
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.
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,
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.
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.
So as soon as coverage command is completed, you will see again a report with all of your code coverage numbers.
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.
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
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.
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
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.
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.
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.
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.
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,
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.
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,
no matter is it linked by Colen or Robsten. Now it's time for questions and answers. Any questions? Yes, over there.
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
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.
Anybody else? Okay, hopefully I will see you in the community. Don't hesitate to contact me.