New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Smart Protocols Need Smart Development: Best Practices from Development to Mainnet_Brenda Loya

Ethereum DenverSun, Oct 9, 2022, 12:00 AM

Speaker

Brenda Loya

Transcript

development to mainnet let's hear it for brenda sorry well hi everybody my name is brenda i'm i'm a co-founder of teller and i'm a technical co-founder and at the beginning it was just like three of us right it's just me and my two co-founders and it was super easy to actually develop because basically we went from one one person coding and to the other person coding and it was easy to to just manage as we grew some things became harder as we incorporated more developers it was just harder to actually keep up like with the progress of the projects and also making sure that nobody was overwriting each other's prs so that's how we came up with this checklist that we now use to make sure that we basically what it what what do you say um make sure that that we actually take things to to production in a professional way and hopefully we don't get hacked this checklist has continued to evolve as we have continued to evolve and continue to put projects out there mainly because we have gotten a few white hats white hat hugs that were reported to us and then we would go back and make sure that you know make things a little bit tighter and better so that's how we ended up with this um checklist and basically it goes back to just going to the basics there's a lot of different disciplines that came into crypto and we end up all like developing different things but we you know there's a lot of traditional processes that we can actually incorporate to make things better and this is basically what i'm going to go with through with you guys it it's just basically common sense to to us now you start with any project you start with design and brainstorming maybe even a white paper and then finally going to development one of the things that we have incorporated into our development process is different types of testings for our local suite we generally do uh two types of testings testing um every function basically we go through every function and every required statement and we write a test for it and we list it out and we make sure that we go through that and then we do another type of test which is just end-to-end testing where we actually go and try to come up with scenarios of how our users will interact with our contracts and then go through you know very lengthy tests to try and make sure that we don't break anything or that they don't break anything eventually um after that obviously we just go straight to my uh to test it and we have generally we put our contracts out there for about a a week or two before we actually go to mainnet and before right right before going to maine we also [Music] we also defined some specific tests that we do after we actually go to mainnet just to make sure that your contract works and that everything is in place one thing that happened to us a while ago is that if you use a suite to actually verify your contract straight into etherscan we didn't know this but even if a portion one of the contracts actually matches the by code it can actually publish the entire code that you submitted for verification even though only a portion of it is actually in the buy code it was or was actually deployed and we found this bug actually the hard way but after that one of the things that we always do is right after being it we actually always verify by our buy code and we we have two people clone the repository two people compile it separately one of them goes to mainet and then we actually go and look at the buy code and compare it and make sure that what we intended to deploy was actually deployed and that step has really like um although it seems like such an easy thing to do it's you know it has really really improved our processes um the checklist i'm not gonna i don't know if if i have any developers in the room you have a developer okay i'm happy to share the checklist it's pretty lengthy i think it would be um a little too boring to to go through it i had planned to go through it through that live but um i think that i just have one developer i'm happy to share it we one of the things that you'll notice on it is that we actually do a lot of these things these checks manually there's a lot of tools out there that you can actually use to to test whether or not you have full coverage for full testing coverage of your of your contract but we actually do this manually because it really helps you like internalize your your contracts make making sure that you know you actually go through the game three of it and actually like make it more secure and it's it is a very very boring process we actually list out every function we count every required statement and then we actually go and actually write a test for everything and one of the advantages of that too is that it makes your your audit process a lot easier i like to think and hopefully cheaper just because you know we deal with so much value in crypto i hope you guys are getting audits for your contracts um but it just makes and they're so expensive they're so expensive and you want to make sure that when you're building your protocol that you're actually commenting your code that you're making it way easier for your auditors to actually go through it and hopefully get a cheaper price eventually you know reflect it eventually um i already went through the deployment process but um one of the things that i just like to tell you guys um there is no perfect code and you know just just put it out there and the best code is actually the code that actually gets used um this checklist within the last year we've actually put out like nine different projects with about four different uh developers it's it's just make sure that you get to your end product and put it out there and make sure maybe if fine market fit and if you don't find market fit then tweak it again and redeploy and just make sure that you meet your deadlines one of the things that we do is like you can think about your your project forever but if um if you give yourself a deadline it doesn't have to be perfect it just has to be okay and then you can optimize later you can always redeploy just make sure that you put it out there um that's it for me if you guys have any questions if you would like the checklist i'm happy to share with you all right we have about 10 minutes if anyone has questions

Automatic transcript — names and jargon may be misspelled.