Tools Community Call #3 - near/dev/hub
Nothing is loaded from YouTube until you press play, and then without tracking cookies.
About this video
On this session Oleg Kuzmin talks about the new implemetation of LedgerApp,
Ricardo Presents his Team and AgorApp @agorappDAO agorapp.dev
Guillermo Gallardo @gagdiez Gives updates on the recently updated github.com/near/near-cli
Jaswinder Singh @jassification from harmonic_guild presents their current work on near-api-rs https://github.com/Harmonic-Guild/nea...
Sérgio Seco presents near-relay github.com/SurgeCode/near-relay
Frol @Freol Talks about the NEARs Rust Stack
Zahid @zahidsharp from jutsu.ai @tryjutsu gives last minute headsup that breaking changes are introduced - more to be announced in discussed on next community call
If you want to present, suggest discussion topics or just want to connect Join the Tools Community Group: t.me/NEAR_Tools_Community_Group
Transcript
10,715 wordsCaptions as YouTube publishes them, usually machine-generated, so product and people names can be misheard.
- 0:07
morning good evening hello to everyone I am ludu I am a def contributor uh at devhub I am very happy to see you all around on this TOS Community call meeting that's number three if you haven't attended one of these sessions before those are inal sessions that we get updates or share our work um into the to uh like to part of the ecosystem uh today we are we're having like wonderful guests we are joined by GMO we are joined by Sergio Vlad I can
- 0:52
see like the Heat and Jazz and a lot of people who are known names into the ecosystem so um today we are going to be talking on AG up Ledger up e and I guess also from leis from agis suround we're going to be talking on the near API RS near relay the updates on the SDK RS um rust stack for version five and the nearest stxs in general so uh if Ean is around Ean are you around I suggest we
- 1:31
start with agup which is a awesome learning platform that is building on here so Ean if you yeah out take it away yeah my co-founder Ricardo is actually going to do the presentation he had to shut down his computer but he's going to be logging in in a minute um if okay maybe next person goes and then we can go after would that' be great yeah for sure um are we going to be hearing from Ledger up then if there is
- 2:05
around uh that must be me y can you hear me yes we can okay I so then I'll start just presenting my screen awesome so you'll be presenting the uh updates from The Ledger app that you're working on correct yes I'll show one scenario in the app emulator it's it will I hope it will be short and most um and most illustrative of the of the changes made all right so you also provide the
- 2:46
context what uh what is this app about yes I I'm not sure if everybody is aware uh okay okay I I think it will be more or less Apparent from the from the uh so can can you see my screen yes we can yes you can okay so uh Ledger app is a tiny embedded app for uh Ledger uh for Ledger devices which uh I used to basically sign signatures for many uh many various blockchains uh uh they claim to provide high level of security by like narrowing the
- 3:36
functionality of the device to just to the signing operations so it's very restricted oper uh operation system designed specifically for these tasks of signing transactions uh so I I will just basically run one scenario uh I don't have a webcam and even if I had I wouldn't be able to show you the tiny screen of the device but thankfully thankfully they have uh this application they have designed which runs in the browser and and can provide like large user
- 4:23
interface uh so I'm running it against my compiled uh version of the program boom uh and I'll just open so can can you see this near app is ready screenshot yes we yep we can yeah yeah yeah okay so I hope it's larg enough so this the greeting screen is very simple it has no settings there's no need to introduce any kind of settings with uh with some blind signing or whatnot so it's just the greting screen and possibility to quit in the on the actual
- 5:10
device it will quit to the dashboard where many different apps can be installed for different uh for different blockchains such as salana babyon I don't know Bitcoin whatever uh here it will just close the emulator so I I won't be pressing this button uh um so I will just play a scenario that I have prepared beforehand uh I will play it manually like emulate sending sending messages sending messages to the
- 5:52
device yeah this must be boom so uh the basic diff the the main difference from the existing application written in C uh is that this version Can it can support arbitrary lengths of transactions so they uh they can be any length uh the the version the C version only supports transactions up to 650 bytes and everything which is great which is greater will will be an error for user uh y so I've tested it up to like one megabyte transactions and it actually T takes
- 6:44
quite a while to to pump such a transactions through this device it takes about seven minutes to pump one megabyte transaction through it um okay so so I'll be emulating what the flow would be of sending such a transaction I I could have done it with with a test so uh all the messages would would be sent automatically but probably that won wouldn't be so illustrative of what happened so first header comes in it contains the
- 7:25
header of the transaction there are a few Fields show the side deser of the transaction the receiver of the transaction and total uh total amount of actions so this is the next uh big difference from the existing app Inc uh it doesn't handle B transactions with multiple actions normally it doesn't deplay any details of what is being signed at all uh this the r version can can support like arbitary number of actions it can be whatever
- 8:06
LGE whatever large number which fits in on sign 32 uh okay so I uh press continue to actions Boom the first the first apdu packet it contains first actions first action also this is create account so so this flow is like a stress test that I've automated in Pyon it basically test all all types of transactions that are possible currently with near uh so create account doesn't have any kind of payload I can abort at this point and
- 8:50
like uh user won't sign any anything but I choose to continue boom so it's so the the client uh receives response and the device displays uh that it wants more once more input boom uh so second action is like delete account uh it has one field beneficiary ID here this description of beneficiary identificator uh for the test purposes I've I've I've sent uh the beneficiary ID string larger than 64 bytes it can be arbitrarily
- 9:45
long but in real in real scenarios it probably very rarely the count IDE very rarely will be longer than 64 bytes so this is beneficial ID boom proceed to next action so third one is delete key is delete key with some Ed 25519 uh curve this is the parameter value boom we can proceed to next one uh this is once again delete key but with some value where SEC P 2506 K1 curve it's also there boom next action so it displays receiving transaction and
- 10:48
it has sent a response to the client and it wants more the device wants just the next chunk can you maybe um for those of the people who are watching or who are attending this call give an overview of what the The Ledger app is actually doing and like what is that uh um that we you're currently building on I this is the new version or like alternative version for The Ledger Dev supporting Ledger devices correct yeah the the
- 11:21
basic difference with the existing application the existing application first reads the whole transactions for for uh writes it to a a buffer in in the devices memory and after that it hashes it with s sha 256 and after that it signs uh it signs uh the the the hash obtained and outputs the signature um the the r app it so the limitation of C app it cannot sign any any transaction which won't fit in its buffer like a
- 12:12
hole it won't be able to do that and it has the limit of 650 bytes and that's it awesome uh is there like a place where people can contact you or learn more about the project in new app that you're currently building yeah yeah of course it's can you drop this in the chat if that's okay or show it on the screen boom yeah this is the repo iing uh I was uh helping to to drive this initiative since we started to uh try to improve the things in C app implementation and we had the recent
- 13:04
drama in Ledger app community of impossible to like the uh JavaScript apps uh on ethereum abused the fact that big transactions cannot really well any transactions in ethereum cannot be realistically reviewed on the small screen so they were just using like approve blind signature mode to approve anything and we tried to for to to use the same approach and implement this blind signature for near device but then we
- 13:36
realized um that it's well it's going to be banned soon on Ledger devices and the implementation was really hard to um uh to deal with and we decided to rewrite it completely in Rust to allow the streaming uh signature process that would allow us to sign big transactions and it was big big transaction uh half a kilobyte may sound like a lot but at the same time if you have a dow um request for example that is usually having quite
- 14:11
a BPG sound that you cannot really fit into half a kilobyte uh if you want to to deploy a contract it's usually half a megabyte uh so you wouldn't be able to sign such transactions with The Ledger device you you still can use your keys off Ledger or have have a different key to to to do those operations but uh we wanted The Ledger device to be able to do all the operations uh to sign anything on your awesome uh thank you very much I suggest well actually I also
- 14:43
wanted to mention that it's very funny that all the developers like all of us have these certain sounds when we're moving around things and like trying to voice over of what is happening on the screen I love because I think everybody has like a sound on its own as well uh um thank you very much if you have any links to share to your project or how can people get to know more about it or
- 15:07
how to contribute I see in the chat that there are also people working on the same problem as well which uh is pretty awesome uh since we are like uh having not really a hard stop but we will be mindful of the time so all the presenters can can join us I suggest that we move into agor up that is going to be presented by Eon I believe and he's co-founder Ricardo if I'm not mistaken Ethan yeah yeah Ricardo is going to be leading and then I I'll be helping out with that awesome then uh
- 15:39
yep once again uh Ricardo and ether are building agab for those of you who are not familiar with their platform is basically a learning platform that um has an i and actually the all the um educational material that they have is actually pretty awesome and engaging so let's hear it thanks for the introduction can you hear me fine okay so I'm going to present I will just start with a couple of slides and
- 16:11
then uh I will jump right into the demo right uh so uh so first of all uh I will give a bit of context about agup even if we we already uh explained the the long story short of it but what agor up is or better yet how it started is that personally when I started uh wanted to learn uh software development in my teenagers I felt like the best tools that that taught me how to code were the tools where I learn by doing uh the equivalent of a of code
- 16:54
academy or H rank or hack the box for pesting and uh and cyber security challenges which is why I was really craving for for a similar product in the in the web three space especially since in the web three space there are so many different Tex STS sdks and and different design patterns or domain specific languages so the really the aim of agor up uh initially was uh being a playground with
- 17:24
a code academy like experience that that would allow you users to immediately out of the box go there and have this plug plug andplay ID that supports smart project development on on as many runtime as possible and then we found a very a great partnership with uh with the near because because uh it's quite uh from a developer perspective it's probably one of the best blockchains with which we have worked so far and and we are developing more and more content there
- 17:57
that's where we hope that uh some of you in this call will will soon join because what agor aims to be is not just being the sort of code academy the web three space but uh being a a a marketplace where people can create their own Challenger and create their own web three courses interact interactive developer courses and and this sort of udemy type of a content creator uh economy where where users not only go there to uh uh to to learn or to uh
- 18:32
compete in coding challenges but also to to create to create valuable content and have this sort of cross-pollination effect across the blockchain ecosystem where where we onboard as many developers as possible not just from the web to uh word but also within the web three ecosystem so it's much cross pollination is possible between ethereum uh and and near and all uh the their chains and speaking of cross-pollination
- 19:01
uh this a picture of our team and when we started working on the product it was in 2023 we all come from a a fairly uh diverse uh background in terms of in terms of of skills uh so I'm Ricardo I'm the regional founder currently my daily job is in cyber is in cyber security just Cloud security but previously I worked as a as a web 3D developer specifically is a protocol engineer for for Life pier and previous to that I was working as a l Mar developer U and full
- 19:37
stack developer for opium Finance which was one of the very first uh decentralized derivative protocols way back when uh the defi summer was was a thing then we have Ethan who is the chief operation officer uh who has also been leading most of the conversation with the with the near uh community and he's also taking care of a lot of of the public messaging that is that that is the bread and butter also are up
- 20:08
because we intend to and I will talk about it a little bit more later but we intend to increase uh uh the the rate of our developer Reach Out activity not just online but also u in a more grassroot fashion and then here we have a Peter and uh and Roman who come from a more hard Hardware oriented background they they worked on on computer computer graphics for a for a uh for a for a hardware company that was develop developing cameras for high Precision footage for brand
- 20:50
advertisement and then here we have Suki who our python jungo developer and mostly takes her of the of the back end so uh our current product so as I mentioned uh the current stage uh the life cycle of the of the Agra product what we have and I will soon show it is is a very much a desktop focused code academy type of experience and we have one type of offering that is more uh uh tailored for the end user where you can
- 21:28
go there and you can really have a seamless experience if you want to learn how to do smart contract development on a on near and one of it is more Ted for uh for businesses which is our embeddable ID uh which we hope that uh many protocols on the uh in the near ecosystem will start uh using as well once we will polish our infrastructure but what the embeddable ID is is as the name suggested just a way to make your documentation more more interactive
- 22:01
because one of the friction point at least for me whenever I just came through some documentation is that uh the information rate the information retention rate is quite is quite low so you just we just making it turning static codes something that you you read and immediately code is something that I personally I I feel like much more uh uh compelling as a as a as a learning and documentation proposition to to the developers and something that we
- 22:32
recently launched but we did it only for solidity but we're planning to do it very soon for for near as well are competition or Cod competition challenges um specifically for for a them there are gas gulfing challenges and we want to to launch the same very similar concept for for an year as well where we are on a on a bi-weekly basis we are launching a new competition and the and the users Implement an algorithm that's uh that's uh uh that is the the
- 23:07
consuming the least amount of gas so that is the most efficient From algorithmic perspective is rewarded with with the sort of price pool and we will soon G gimify the mechanics of each a little bit more but for now we are subsidizing it with the hey Ricardo maybe just quickly show the demo because we already passed 10 minutes oh thank you so uh as I was mentioning here we are
- 23:33
on AG just the the live playground and I so the course that we currently have for our for is is quite basic it's just an introduction on the on the how to declare a contract and then the main the main uh con the main constructs and how to declare variables and what is the concept of state and some of them main uh data structures but uh like here for instance if if we don't implemented
- 24:12
correctly so here the we're actually running integration and unit test against against the Cod that is submitted by the user so it's not just string quality which is for instance what uh our predecessor crypto zombie was doing so we are trying to mimic the the developer experience at least in so far as smart contract development is concerned as much as possible and here we there is a walk through of of some data structurs and for instance collections on on here
- 24:46
and and uh yes that's pretty much it something that I'm really looking forward to and I would love the feedback of the community is uh uh well that we will soon launch SEC security smart contract security challenges where you will have to hack a contract basically a bit similar to hack the box in the web to space and gas golfing challenges where you will have to implement the most uh gas efficient uh solution for a for a specific as smart contract problem
- 25:18
I don't know searching algorithm or some mathematical uh uh problem and uh uh I would like to see as many of you partic participating as possible because we will also start allocating more funds there so that's pretty much it nice thank uh thank you uh I have a question for you how do you Source the actual course materials like because it's it doesn't seem to be like just a copy paste from the current near documentation it seems that you have
- 25:50
been rewriting them from scratch and they're pretty good quality so how do you Source those it's it's a Le experience for for us as well as I mentioned I personally come from the fil background and and the person was leading however the development of of the near course was just from the web to space so we just we just went through the documentation as I mentioned near actually has a great developer experience so it's much more pleasant than other blockchains that we had to deal with so it there was surely much
- 26:23
less friction but then it's it's a much of like learning first and then then a ulating it and then and then breaking it down in a way that we feel like we will be able to understand it ourselves yep thank you very much and like it's also right uh quite in like I see that like the the course that you're actually making they using JavaScript to actually write the smart contracts but don't necessarily it doesn't like uh yeah does not they do not necessarily need to be in rest because you're
- 26:55
teaching the concepts on here and that if for people who want to get like more involved into development then they can translate those uh this knowledge to rest so that's really cool um I see that the heat uh from Jutsu uh has raised the hand so if you have a question go ahead to hit yeah so like my question is do you simulate or do you run uh this contract in a in a container to kind of run the unit test is it just a simulation of all this unit test or
- 27:27
actually running the contract and running the unit test yes we uh we uh run it locally obviously it's also all sandboxed in with doer containers because we want to encapsulate as much of the User submitted code as possible because from a security perspective any code that is submitted by the user is potentially malicious so there is the security component that that we just want to send box it and then there is a let's say a more architectural blockchain component where we're actually like running it locally setting
- 27:57
up yeah meaning sorry locally meaning locally my user comp who is learning or yes yes just there is just local test net for for each user just to provide a little bit of context the hi and like who is providing who is building jutu they also provide some learning resources and they're focusing a little bit more on the web components I assume but that's is not going to be necessarily the case so I strongly
- 28:29
suggested that you to contact because I think there's a good collaboration that come out um I suggest that uh we like if you have rard or E if you have any other links part of the one that I shared in chat please drop them people know how can they contact you and I suggest that we move over to GMO which is next to the agenda gilmo is the main contributor for the documentation we uh and we are thankful for that so Ricardo here you can see the guy in person uh so gilo is
- 29:03
going to talk a little bit about the near CI as you may or you may not know uh recently the CI was updated to version four uh which yeah it did some restructuring some of the functionalities yeah were cut down but um yeah 11 will talk a little bit about it and see where we heading yes 11 perfect yeah can you hear yep uh yes so I have just like I didn't want to do this but apparently now I'm having
- 29:35
to maintain near CLI so let me I I will I will keep this very short so other people also have time so this is the near CLI that we had basically you will run near right and you will have like all of these commands and like like this is how it was organized it was doing a lot of stuff and it had like a lot of options and a lot of Flags uh but this was basically the main like the most U to interact with
- 30:06
with the near blockchain uh we had a couple of problems with this the first one is like literally nobody was maintaining it uh the second one was that there was a push of uh of of an update to the to the near protocol and then some of the comments got broken especially like commands on terms of like deploy contracts on on what we used to call the ER accounts and and yeah it was a whole problem so since this was broken a lot of people was using it I took on again it's not that I want but I
- 30:38
took on like maintaining it so this was the old CLI and now if you run the new near CLI I just completely simplify it right like if you run near this is all you see these are all the commands and these are all the flags that it can run uh and the whole idea is we had a huge near CLI that was doing a lot of stuff so I basically and and the code was there like for four years no one had you know taken the time to reorganize it so this new version
- 31:09
4.0 is basically focused on reorganize the code so it's easier to maintain because basically there's going to be apparently only one person maintaining it from now on which is me uh second to reduce the scope because the previous one was doing literally too much uh and even had like features that do not exist anymore like does anyone remember the J JS Enclave did anyone get to hear about the JavaScript Enclave like that that doesn't exist anymore it actually
- 31:40
existed for two months I think but we had commands for that in the CLI uh so yeah I basically I reduced it reorganized it uh clean the interface and hopefully the whole idea is that we expect this to not be like just be maintained in the sense of like if anyone finds a buag please let me know and I will maintain it but we would like to not add any more features and even in the future maybe just completely deprecated because devhub is actively
- 32:13
working on the new version which is near CLI RS which is based on Rust and uh yeah so hopefully you can use this one and see it now and there will never be a version 5. oh I hope uh but yeah so again like this is completely compatible with the previous version I 95% of the things I migrated them the only thing it doesn't have right now is leged support which maybe I will bring back in now we are on version 4.0 4.4 maybe I will bring it back in like
- 32:49
4.0.5 but I have to find time for that uh but yeah and it fixes a lot of things uh in the previous one uh there there's like a command that was never working which is like if you want to call something let me see if I have an example to be h i PR uh with with network ID network ID main net yeah so before this was never working like to ask it to use another Network that it was not test net you had to
- 33:21
somehow you you you need to like export some variables for the environment that was annoying now that it's fix the only new thing is that now you can create an account uh and you can basically say I got know some account that doesn't exist most probably exist and you can just use a faet I think it's like like that that I created and this will now create an account for you automatically let's see if it works yeah there so now this some account that does exist do tet now exists before near CLI
- 34:01
the previous near CLI did not allow you to do that I don't know why they never implemented that and those are the GU changes so everything organized reduced fixed and hopefully never to be seen again questions great job yeah thanks it's also worth noting that the new C also got rename some functions I believe that now close follows a little bit more closely to the r version if I'm not compa with the previous one because they are ales everywhere yeah awesome uh yeah that was
- 34:36
really nice thank you for the updates I have put the repo if anyone and also the release notes if you want to check on all the entire change lock and see yeah and see what's what's going on or if you want to contribute uh take off with from gilo he would be sad I sure he's not going to enjoy it as much as he right so next to in agenda it's ja he's going to present something that they've been working on this is the near
- 35:09
API so that's so I believe this is like a new contribution I believe that it's super recent uh so yeah just if you can take the wa and present that would be awesome yeah thank you thanks a lot take um yep I will just share my screen hold on all right um just came up with these slides just now to sort of explain this but essentially uh all of us uh might have heard about the near APS uh the JavaScript library uh that
- 35:48
helps you interact with the near protocol the most beled I would say the API Library we have um I think this near API RS project sort of stemmed from discussions in the near Dev telegram group where we were just discussing that is there an rust alternative as well I was writing a JavaScript server uh to sort of do something and I was wondering if there's a rust API Library as well
- 36:15
Etc so that's when I started looking into it and sort of thought it might be a good idea to start writing this uh there were earlier attempts to write this as well um hope and didn't go anywhere um so we gave it a shot and it's looking good for the two and a half weeks that we have spent doing it uh you can scan this QR Code by the way to look at the GitHub code um so uh sort of simple introduction uh
- 36:46
right now the most sort of highlevel uh rust uh library that you can use to write uh rust code to interact with the air chain is actually a pretty lower level uh jsonrpc client right here and it exposes a lot of uh functionalities that might not be very easy to understand for developers who has just started writing Cod on near Etc uh in fact the near CLI RS and the near workspaces RS um also
- 37:17
use the near Json RPC CLI a pretty neat Library uh I went through it uh while creating this and it's pretty amazing anyway so all of us know about the near API JS uh this project that we just wrote is just a rust implementation uh of the same um so it's been I think it's been four weeks since I first mentioned it in the telegram group and I think in the last two and a half weeks we me and a
- 37:49
bunch of uh other contributors we have uh written some parts of the providers create and the transaction creates and the accounts create so we now have a full sort of flow uh that runs as an example where uh you can create a sub account uh using this new rust API um so uh just to sort of show a simple comparison of how you write create account with the existing jsonrpc client and then how you can write now write a create account example with the near API RS uh that we just
- 38:28
worked upon hold on um so I'll quickly show the current way of uh so if you use the near Json RPC uh client uh this is what you would have to do right now mostly if you look at the main program here initialize your signer and everything uh get the new account that you want to create from the user and then you sort of create this transaction uh where you are mentioning the different actions that you need to create a sub account um this is where it gets more
- 39:08
technical as well like the user the devs have to know what all actions you have to combine to create a sub account Etc and then which packages near core packages these actions come from etc etc um and then there's also you you also have to write something for getting the nuns from the chain and even with that you have to know the specific RPC request Etc from the Jason client uh which we feel like is uh very lowlevel details from the chain and it gets
- 39:40
difficult and the code is not that clean uh if you want to write it I mean it's clean enough but it's very lengthy so to speak um so we thought why not have a rust Library which exposes similar functions like the JS API um so this is a simple example for create account uh that works right now um it does the same thing in the beginning uh you initialize your signer you get the uh
- 40:05
account ID for the new uh account that you want to create sub account you want to create uh it sets up the provider sets up the signer and then this is where the new API is coming uh you create a new account from the accounts create and then you call the create account function on this and then you get the result from the chain uh that the account is sort of created um so we have created uh most of the functions that the JS provider uh supports right
- 40:39
now in the rust provider I think we have implemented maybe five out of 12 or 18 I don't know uh but we are probably adding more and more functions here uh then we implemented the transactions uh and we implemented the accounts to sort of make this full flow um the uh JavaScript library implements a more sophisticated key store and there's no alternative of that in the rust uh so we writing something from scratch um the signer is also slightly different so we writing
- 41:09
that as well a little bit um the accounts uh create right now does not have any other function other than the create account itself uh so as we contribute more we'll be creating more functions which is transfer and then function call and all the other apis that the JavaScript uh package accounts package uh also support um so more or less this is it I would say uh we could do this in two and a half weeks we are hoping in the coming
- 41:44
weeks uh we contribute more Etc um so we will keep adding more functions to this uh I hope in few weeks we would be in a good shape to publish the crate uh I know near API is already owned by the near team uh hopefully we could publish to that if the creat is polished enough uh start writing more examples and documentations ASAP so that people can uh use this um as a part of this
- 42:13
activity I sort of uh figured have three four open source cont web3 contributors introduced them to near and one of them already contributed to uh this Library so we are also onboarding more users to the near ecosystem with this project uh and hopefully we'll be reaching out to some funding nodes in the ecosystem NDC devhub build out to sort of start compensating the contributors as well so this is a small introduction of uh what
- 42:46
we did recently uh scan the QR code check out the library uh on GitHub I will share the link in the tools uh group as well the readme isn't that great but there's a PR pending for updating the readme so hopefully um you guys can check it out uh but yeah that's it uh any questions uh please we can move the questions to the chat I won't like let me see if there are any uh apparently not much uh I am I have one are there any uh are
- 43:24
there any other libraries that are currently doing the same or are you same like are you alone in this space at the moment I see that uh like uh some contributions to the documentation would be needed for this package but I obviously this is brand new package that you have been just working on the past week or so but uh yeah I look forward to actually use it a little bit to my personal project to be honest um yeah so any other questions for JZ and then we
- 43:53
can move to uh to Sergio uh by the way uh as it happens uh pretty much on the every session we have taking it long thanks to the our active Community there are plenty of u news and uh updates to be shared we're overshooting but please stay a little bit longer if you can because L is going to take us and talk about the the new uh SDK rust and the rust the near rust Tooling in general I
- 44:25
believe also some information the death container from uh Noah is coming up so if there are no questions then we can move to the near relayer the that's coming from Sergio around yeah I'm here I'll keep it short so I hope I hope I didn't buter your name so basically Sergio is also relatively new contributor to the ecosystem at least to my knowledge foron me if I wrong but he already already developed like an amazing library that obstructs the the relaying functionality
- 45:02
that uh we so much be needing really now that we're heading for chain abstraction and and moving uh forward with the decentralized frent and I think that it will allow a lot of Builders to actually onboard and ease the the the usage of their apps thanks to your uh Library so if you can share it with us we'll be pretty happy yeah cool hey guys so yeah I've been working with near for a while uh with mint base but I've now started contributing on my own to ecosystem I've
- 45:39
been trying to do that in the last month and I started with this Library so I've built a ton with like meta transactions and it's always been kind of like hard to understand there's very little documentation although that will be worked on um and uh yeah it's very hard to understand like the different pieces you have to put together to get everything to work so my idea was just to create this simple library to be able to rep everything and create a simple
- 46:03
API that even like a beginner developer could easily use so yeah you could just install this like client library for a relaying and uh this exposes two endpoints I mean two methods uh this method for relaying transactions where you can just like pass an action and a relayer URL for an endpoint that allows relaying and you can use any relayer because they basically all follow the same uh kind of uh structure or you can use this create account method and uh
- 46:33
the create account method just uses the biometric library that sends a request to relay to also uh create an account but the most important one is the relay transaction this is what makes it simple so I can pass any action into here and I can easily get my uh transaction relayed um on the other end we have a server um Library as well so I can just npm install near relay server and it exposed like these two simple methods that I can see here which are relay and create
- 47:02
accounts so by setting up an API with just like two um two endpoints here that I can enable uh these two client methods as well um so yeah you just set these environment variables you create two end points with each of these methods which is like relay and uh create account and then you basically are set to go uh so this repy contains like both uh client and server and it also contains an example which is just like a simple next app that uh demos how the app works so I
- 47:35
can maybe show quickly uh this example is still a little bit unstable but hopefully everything will work um so basically I going hit this create account this uses uh the biometric library to create the um the the key pair which then gets created on the API endpoint um ideally we would use wallet selector here but the problem is wallet selector doesn't have the sign uh signing method in the standard so that's a problem which can only be solved by
- 48:10
changing the standard hopefully that that that uh works and then you'd be able to relay a transaction signed by a wallet uh that would be my eventual uh idea uh so I just created the the account we'll check near blocks in a second right now I'm just going to relay transaction um which is just like a simple demo transaction I'm not even sure exactly what it is um but yeah let's see transaction relayed okay let's check the account on new
- 48:43
blocks okay that was actually surprisingly fast and cool we we created the account looks like uh and we also just like Meed a simple nft so that's everything I got uh I would love to hear any uh feedback anyone has about the library I'm going to be making quite a few changes I already have a few cooked up that I haven't released yet so if anyone wants to contribute anyone wants
- 49:08
to use it I'll help you guys out and yeah that's pretty much it thanks guys thank you very much yeah I think that uh also uh your project would make a g great contribution to uh the documentation to the official documentation that we have as well uh because yeah I am not quite sure of the current state of it but your solution seems pretty good so if you can drop the link to the GitHub repo into the
- 49:38
chat see Gil is all Ving up for you for just for a second I was thinking that you have like way more hair but yeah this was just sparkling stuff uh yeah as a reminder like basically uh as I said before we are overshooting a little bit as per our last go uh so yeah we are going to be making this a little bit more often uh so we are trying to accommodate pretty much everyone everyone on this post so as we will be dropping like a proposed dates for the
- 50:08
next call which is going to be in like aimed for early March you can vote on these dates into our telegram group uh it's already in the chat and I'll will present the link to it into at the end of the at the end of the call in my slides and if there are no current questions for Sergio it doesn't looks like it but do check his GitHub repo because it's a very nice examples of Open Source contributions uh so without further Ado
- 50:42
uh let's take it off to Vlad he is very known person one of the most known person in our ecosystem the advocate for rust and the rust CI and the rust tool link and lot will be giving us updates on the new I DEC so that take it away hey everybody yeah well uh I will start with the more uh top level problem I I see in uh our ecosystem which is the bigger picture of what what we have here
- 51:16
today and what what is the rch and what uh they in in in in rasa system there are very famous uh websites were created in the early days are we I think yet are we uh some other are we Game Dev ready are we web that ready yet uh so using the same Paradigm um I decided to create a series of posts about different aspects in Theos system and I'm posting them on the tooling community on devhub so stay stay
- 51:51
tuned and uh let me just present you quickly what what this high level picture in my head at least uh looks like when we are saying like are we rest yet in a sense yes but uh we know that uh well there is always room for improvement but at the same time I I still argue that it's uh still very hard to um get involved unless somebody is guiding you very closely um it's it's bumpy process here and there to discover
- 52:23
what's available and how to deal with it and so I I broke it into different like stages so when we are talking about like welcome to cool we already have um communities like this one and uh we um we use various platforms to meet people to to gather around um but there are still um challenges with um discovering stuff and uh uh more importantly um feel feeling um well oriented in the in the space um some
- 52:59
people even years after still do not know about some of the communities we have uh which is uh sad because they could have contributed a lot more um on the next stage once you somehow uh get through it uh you need to get started and while we have a number of cool examples uh whole uh organization of those thanks to G Jero and Josh working on this most of the time at least from my to my knowledge and many many other
- 53:33
contributors joining through devhub um and uh these days and also historically being part of uh p in um contributing to those we also have great local uh and online development environment which I will talk in a bit um and combining that together with clis uh SDK and integration uh testing framework that is very powerful tool set but at the same time I I feel like not they're not very clearly communicated articulated
- 54:11
especially if you land in one place you don't really know how to discover the others and if others even exist so there are uh some of the challenges that I planed here including the like how to and I actually started um um perspective uh from somebody who has already experience with Ras Swift codling Java CP uh type of languages um then they would be real relatively productive with u developing conflicts and rust uh but we are not um supporting them very well not meeting them in my
- 54:51
opinion and then just uh to quickly go through it there is a like go production stage where we uh we already have the great tools we already maybe have built some some of the Prototype but then how to make it production ready this is also still a challenge U and it's bumpy a lot of people Reinventing the wheel uh or like it requires a lot of um wisdom to just sit down internalize and um think about all those critical potential pitfalls uh
- 55:29
or in the worst case learn it the hard way which we don't want people do so I I argue that we still have room for Ru in this area and I outlined some of the uh potential things where Community can help because it's definitely more than one person effort to address all of these and what's even more important is to get others invited and we already like many of us I believe especially on this call uh came to near
- 56:02
for a great Tech and awesome community and we while we know that it's great we need to also let others know about it and I think we can help the communities to um to self form to to just guide them a little bit I uh I recommend to look into this peer laab Community approach which is basically peer-to-peer um framework it's it's the there is nothing special about it I was running rest peer lab um back in Ukraine and I'm considering to to do that for near as
- 56:42
well uh in Vienna and anybody can really do it it's just a matter of uh picking the the place it could be a um Library it could be a coffee shop and just uh get like-minded people uh join you and talk about the tech so this is the high level and uh I hope we can um uh polish it more um on that aspect and each of these as you as you may imagine requires even more uh attention and detail and
- 57:21
diving into SDK uh specifically uh for R development uh contracts um in Rust for year um a couple of days ago I cut the 5.0 Alpha 3 release and today I'm writing finalizing the change log for the whole like 5.0 stable release hopefully we'll cut it to today tonight um and uh update all the tooling uh I know uh needs to be updated to use this release before is Denver hackathon so that's uh the deadline we are trying to hit here uh on
- 58:08
the other note so well it's um it's it's pretty Buffy release uh just just to mention it and it's been a while since the previous table release and the main reason for that we tried to pack all many of the breaking changes that we were were anticipating like uh Pro providing type safety uh other um like major updates and improvements uh to our dependencies and also performance uh
- 58:40
improvements and security improvements and better testing all at once I expect it to be the last uh uh beefy uh update uh for for for for us be because it's not very sustainable and it's uh very hard to to to maintain and that's why going forward all the releases already automated so we expect to see releas releases cutting every week every other week um with minor changes and I hope we already addressed all the breaking changes uh
- 59:21
for the upcoming year even more so yeah that's understatement to say that it's just a bey but yeah well um almost like over over a year passed uh which is sad to see that we couldn't make it sooner um but we we focus on the bright side uh one thing that I want to also mention about the rust stack um I touched based it on the previous call um this carer new project template which
- 1:00:00
will by the way use SDK 5 um very soon uh has been pushed to the Finish Line it looks beautiful it has the uh quick start guide for those who are not familiar with GitHub interfaces GitHub approach you can just use a uh this button uses as template you create a new Reaper you give it a name cool near repo without exclamation mark and go create and in just a bit you will have a button right here create code space on
- 1:00:44
Main and once you hit it in under a minute you will have a fully configurate environment for smart contract development with all the tools print everything ready and you can already start hacking uh is there yeah I have the environment pre-boot it just to save our our time here um Let Me Clear uh the input so once once you will uh have it open you will see the screen and you will already see the files here and you will be greeted with the where to get
- 1:01:22
started um pointers you start start with the code then you proceed to the testing suit and see okay this is how we test using near uh workspaces AR rest uh launching the sand boox right here boom and then we do carger build carget test and carer deploy and that's all you need to get um get it ready as we you can even do it interactively if do carger and you can create a new Dev account you you choose to generate a random uh
- 1:02:03
account ID for the sake of our demo how to generate the key paay we save it to the Legacy keychain locally we don't have a system keychain here available it's testet boom it uses the uh faucet as GMA showed us before uh CLI uh NGS also learned how to um and cargo near and all the r tooling knows how to do it even better and um so now with this command we can deploy this is the newly created account I'm just selecting it with the arrow keys on my
- 1:02:46
keyboard no initial call needed it's testet it's Legacy keychain that we used to sign the key the transaction this is transaction that's deploying the contract okay we are ready to send near C is helping us to confirm and never let us down with un unconfirmed actions performed on our behalf so it's very safe environment you can always cancel at any point boom we have a successfully
- 1:03:21
deployed contract in under two minutes I believe uh to test net so that is the um cool online experience you don't need to install any tooling on your um laptop uh near CLI is also available so we can see view account uh view account uh this one testet now this is the view account functionality cool and what about what is the version here cool it's latest uh so the even cooler part which was released just
- 1:04:07
a few days ago is contract inspect we can use and select the contract right here hit okay and we see all the details about the contract now so the account where where the hash of it how much storage it used how many keys it has what's the version of the the contract which is pulled from the car toml um and ABI thanks to carer near AB we have all the details about the methods that are so there is a method of get status and setus set
- 1:04:41
status they use Json schema to uh represent the like the the types that they expect uh to receive so for example get status uh receives a account ID um as a parameter so when you interact with it you do contract call function readon this contract get status by the way we will uh add out suggestion here as well soon and as parameters we need to specify account ID as stated here so account ID and we specify
- 1:05:23
whatever currently this account is m so it would return empty result anyway but if we would have something um set there we would see a different result um cool that's speedrun on it I don't want to take it any longer I'm happy to answer any questions yeah go ahead uh yeah I have one like uh is it able for the dev containers to be embedded into some other products like we had before into like for example Educational Tools be tagur Jutsu something like that like is this container actually self contain or like other applications can
- 1:06:13
actually it's just a container uh so if you open so you you can add it to any repo by the way you can just copy this folder or just this file it's pretty simple so this is the pre-built Docker container with all the tools installed you can you can even pull it locally if you want um there is this separate repo I don't remember uh so it's probably actually named this way GitHub
- 1:06:42
um let's see quickly and the container uh where you can actually see what's what's what's installed there um and yeah there is no no magic there it's just configuration and adding all the tools into it uh the cool part is that when we pre-compile it this way pre uh and and deploy as Tiny uh image then it's very fast to boot the environment and uh with everything ready basically
- 1:07:23
yeah I think this amazing the dep containers are amazing too because like I can take my Raspberry Pi 400 and just like ready to go straight away cing and don't even to store anything so I'm pretty excited you don't need any powerful machine yeah if you if you if you prefer this environment for your day-to-day life you can even uh buy beier uh instance from GitHub and completely eliminate your you know your
- 1:07:53
local devices power I have a question about goad uh so the I see the ABI so like one of the thing that I did like last year like generating UI from uh ethereum ABI so if this AI is like a can I get the whole schema definition or like yeah yeah so you actually do uh near contract download API here saving it here yes now cool this is the whole ABI so it's a view function exposed from the contracts not not every contract has it uh you need to compile it with the
- 1:08:42
nearest DEC rest of with some parameters previously it was opt in now it's done opt out so most most of the new contracts being deployed with the uh car year tooling will enable it by default unless they would explicitly State out otherwise um yeah this will be so helpful like to generate Bui like the thing that I'm working like a from your contract we can generate components and then like
- 1:09:14
absolutely okay amazing um are there any questions for Vlad or yeah Vlad how many people working on version yeah go ahead uh is ABI stored on chain yes this ABI is stored on chain as a as a function call method uh so what what what ABI does so car near build um it compiles your project first uh to Native binary uh locally and calls it to extract the the schema definition and store it as a Json file next to your
- 1:09:53
BM file then it comp uh compresses it as into this binary and embeds that binary into the contract under a name when you call a contract call read and contract AB um no parameters now so it returns this uh compressed Json on um in return so it is stored there and you can get it by making a view call but then you need to De decompress it and you can do okay so this this T file gets deployed along along with uh the was Ed inside the was
- 1:10:44
inside okay so yeah one last question from Matias I have in the chat how many people are actively working or have been working on V5 SDK on on what on the version five of the SDK oh I don't know like it's been a while so I I would estimate a couple of dozen people uh through not not very actively like uh the the the maintainers I would say it's a small group it was uh three people from p initially pushing it forward then it was picked up by devhub and I was mostly leading the efforts to
- 1:11:31
polish it uh helping the to to to get the maintainers and I would say that we have like a group of three people uh contributing to it more or less actively but uh yeah it it definitely needs more like dedicated effort if we want to move forward uh even faster yeah well just to pick your interest maybe you can appreciate the removal of this boiler plate going forward will be replaced with just these near AB absolutely like one line remove
- 1:12:16
is so this would be amazing yeah yeah reducing bate is always good uh especially when it's not really adding some like Auto Magic stuff and it's basically boiler plate that's what it is so it's not hiding something like yeah very deep implementation of something uh Vlad are there any any other updates that you're going to present us or you done no that's all okay awesome so thanks a lot V thanks a lot of the all the contributors who are making our life
- 1:12:49
easier and for the better also with the default API by default uh so yeah thanks a lot guys and thanks a lot to everybody who contributed to this project uh meanwhile breaking news uh Jutsu or like zahit from Jutsu would like to make an announcement if you don't know Jutsu uh he like zit was presenting it on our TW Community Cod previous one I don't know how I do this maybe the link is here or maybe it's here I don't know uh but uh
- 1:13:20
jutu has deployed today I believe some new features that are make are introducing breaking changes but more of these features we'll be talking on the next call but meanwhile a hit will just give us a heads up of what is actually happening so you don't experience unexpected breakage in your code as a hit um if you can give us like short heads up yeah just one minute so uh what we did is we redesign our landing page
- 1:13:52
and also we we change our IDE from from Monaco to uh code mirror for various reason uh so and we we added two features if you go today you can use one is generating UI from just prompt it's more like a b0 dep kind of thing where you can build UI just based on your prompt and repr prompting so give it a try and then we also added a co-pilot uh like GitHub co-pilot but like we are
- 1:14:23
trying to improve it more so that it understand the boss context right now you have to do like a if you have a bigger chunk of code then if you select that and prompt it and say like I want to change the color of this uh this component or I want to add a header so those things are there so because of that change uh if you have a local code uh like a unsaved code in your editor save it first and then refresh so
- 1:14:53
because then uh you might lose the local version of it um so that other than that like everything should work as it is I don't awesome yeah thanks a lot for the head up zit and like I would look forward to get the full updates including the copilot I'm super curious to see will this speed up my my JavaScript typing I would love that uh but more on that I assume on the next uh tools Community call