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

Loading player…

Ethereum Swarm - Beta Release - New Features Presentation

SwarmFri, Oct 9, 2020, 12:00 AM

Website: https://swarm.ethereum.org/ ABOUT THE VIDEO With Swarm Alpha, we created a solid foundation, the basic protocols of Swarm. With Beta, we are added a lot of new, exciting features for dApp developers, who will now be able to start building on Swarm with ease. Take a few minutes and see the video presentation from the Beta event, where our developers demonstrate what can be done with the Beta software. SWARM BETA (RELEASE v0.3.0) - RELEASE NOTES Bee Beta contains the required features to build rich applications on top of Swarm. This release adds: - Bandwidth incentives (on the Görli test network) are enabled by default - Zero-leak messaging (Pss) - External signer support (Clef) - Improved sync and download performance - Breaking changes on the protocol level (TL;DR - just update your nodes) We invite you to try it out and get in touch at our BeeHive or Telegram. TRY OUT OUR APIs: YOU CAN START BUILDING YOUR UNSTOPPABLE dAPPs NOW Bee's third release marks a major milestone of the Bee project; we believe that developers can now unleash rich applications over Swarm with a good balance of performance and security. We understand that as the Swarm ecosystem develops, developers might need access to low-level APIs in order to develop a rich application experience, we therefore also offer a set of low-level APIs that allow you to interact with the Swarm network in your own, custom way. We invite you to use our APIs. Your feedback would be beneficial for us to further improve them in the future. - BREAKING CHANGES: Several breaking changes were introduced with this version. You are advised to update your nodes promptly. - BANDWIDTH INCENTIVES: Bee Beta contains the basis for the Swarm bandwidth incentives. You will now earn gBZZ (Görli BZZ) by running your Swarm node. Conversely, you are required to pay with gBZZ in order to upload and download content. You can get gBZZ at our faucet - check our documentation on how to fund your node's chequebook. - ZERO-LEAK MESSAGING: Bee Beta releases the second iteration of Pss (Postage service over swarm). Pss is zero-leak messaging over Swarm that allows for confidential, anonymous and untraceable node-to-node communication. Pss comes with a websocket API that allows clients to send a message to a recipient on an overlay address as well as to subscribe to a topic and receive messages. - EXTERNAL SIGNER: Bee now supports an external signer (Clef) for security reasons to allow private keys not to be exposed to client process. - SPEED IMPROVEMENTS: Uploading and downloading data to Bee is now significantly more performant than it used to be(e). - DOCUMENTATION: All new features are documented in our documentation.

Transcript

um so rinke um i would say i'm just gonna hand it over to you please and see us uh uh until the better release okay um all right so the b beta release uh in this presentation i'll be talking about uh the post what i've been doing up until now the presence what did we release in the future what are we going to release a bit about me my name is rinka you can find me on acne or on telegram github or beehive for even runescape or other online games i'm the product owner for the swarm team and a researcher mostly for the incentives and sometimes i also act as a developer but well not really um so about the past um i have a little bit of comparison between swarm and b because for some people who are already longer in this project it might be confusing because what is form and what is b well swarm is the node software for the olds form right and b is the node software for the swarm network right so we have the swarm network right now the swarm network comprises of multiple b nodes but in the past and that's a bit confusing we used to call both the node software and the networks form so forget that right now the b is the node software and the swarm is network that's it so in the old swarm and that's the node swarm the node swarm software was built on top of death bfb which is a networking layer amongst others ethereum used that but ethereum as the ecosystem is also moving towards lip b2b which is really a much better more advanced networking layer um the swarm codes used to have um a lot of development and research we've been working on this for more than five years uh four years i should say but really after working four years and iterating a lot of codes it became clear to us at the points that with that source codes we probably wouldn't be able to release production ready so far so we rebooted in march this year and we decided to start building the b note the software b and really the goal of the b note we're doing it for the second time but the goal is to have a prediction network with production grades uh code so it's already said the product development on the swarm mode stopped in march 2020 and um well the the b notes started development in the end of 2019 um with the swarm node devops used to be an integration testing used to be somewhat of a second thought whereas in the b node uh devops and integration testing is an integral part of the b project because of this we can ensure much better performance and stability of the network if you're working for four years on one software project even if you have advancing insight it becomes increasingly difficult to apply that so with the b note we had a unique opportunity to apply a lot of advancing insight and even though we've been working only for a couple of months right now on the b note b is already feature complete compared to this form and many of those features have had significant improvements so a couple of months ago we released the b alpha and the b alpha as fake victoria's set was mostly a distributed immutable store of chunks and the disc is really the fundament of the swarm network and the b notes have been running with the alpha release a network which has been continuously live since we released the b note well of course on the disk you cannot do a lot you can upload and download chunks but chunks are not interesting right you really want to have something to to show and to demo which is why during the author release we release the feature to upload and download files as well oh yeah by the way i put a heart here not only because i love the other release but also because i believe that it's the the heart of of this one then to now the beta release um a little bit of comparison uh between the beta release and the alpha release so the alpha release contained a lot of lower level protocols and those are inherently not really demo ready right we only had files to upload so the other releases had a lot of lower level protocols which you couldn't demo but which was essential was a fundamental and not so many higher level features in this release it's exactly the opposite so you see there will be a lot of features um but there's not so much advancements on the lower protocol because those were already built in the alpha release and i want to acknowledge the whole team janos the tech lead everybody from the dev team our devops team and also all the devs who are not currently in the team of course everybody worked extremely hard and well to put off be better the road is bummed the the features are experimental but really no single person out of this list could have been missed because without you we couldn't have released what we released today so thanks everybody pps also thanks to everybody who helped me with a lot in this slide preparations and also of course swarmers much more than only deaths uh so they have been amazing work with people every day to support a swarm from operations marketing communication research and legal and edina you're there thanks all right um so with the b-beta your notes now contains the required features needed to develop and launch a wide wide array of applications on top of the swarm network so we really invite you right now to try it out all right and all the features first of all with utilities tools and features to build unstoppable applications we have the swarm bandwidth incentives essential for the self-sustainability of the network we have protection against loss of chunks and we'll go into what executed this and we have a couple of ux user experience improvements you can check out right now already the release it has been released about three hours ago right now on github.com ethersphere b right so utilities tools and features to build unstoppable applications first of all manifest manifest specify some sort of a mapping from paths to documents which allows uri based addressing why do we need this well to map a file system directory trees on swarm serve as a routing table as a site map to access websites and support arbitrary key failure stores and swarm that's a lot manifest really allow many higher level data structures to be built on top of swarm so why is this so cool we support multiple manifest implementations next to each other and also the default mont array offers logarithmic operations optimized for large directories such as for example wikipedia another small video to show this this video was made by yamush a couple of days ago so you see januar's creating here a few js application is now cloning repository right here it is you see the application here is the application so it's going to say welcome to the future yes absurf by swarm and vue.js for those who don't know it is a very popular framework to build applications the web all right here is going to tar to bundle all those files into one file and he's going to upload the tar file to the swarm via the deers directory directories he gets here the reference and this reference you can use on the bcc endpoint to you know browse unstoppable uh websites or applications that's it thanks janus for the video and you can check out his videos oops it's below but anyways you can check out this video on our youtube channel ethereum's form okay the other one is name resolution so we're using the ethereum name surface or compatible to resolve human readable the name names into swarm addresses this is needed because we need to map immutable addresses to mutable contact to provide the integrity protection on the blockchain and also to provide for human memorable addresses because let's be fair nobody can remember as form address right well it's very cool that we don't force you to use any blockchain in particular to resolve names we recommend ethereum but feel free to use any other evm compatible blockchain such as rsk to resolve names single owner chunks well victor already spoke about it just before me but basically in swarm we have two types of chunks the first one is content address chunks and the second one is single owner jumps single honey chunks are really one of the kinds because they enable offchain mutable content to serve as a basis of fees representing regularly updated content from a single source it's so cool to have this because in previous form a more constrained type of single owner chunks was exposed this was a feat on top of the single owner chunks you can build feeds but many more options right now are possible so unless the creativity seeking content this is random access into a file skipping to a given offset it sounds technical but basically it allows you to consume media resources on swarm without downloading them first it's basically you navigate to the swarm address and in your browser you'll be shown a video player so that you can you know play it and cool thing about this really what i think is that this one was a user request and david hq requested this feature in our telecom channel and it was implemented within two weeks so please let us be a motivation that you can also go in and request your features then encryption um this is to store confidential contract on swarm which we can only decipher if you have access to the secrets to the decryption key um we need this because not all the information should be public and the cool thing about this is that you could do selective disclosure so if you decrypt your website for example and you only want to to disclose part of this website you'll be able to do it with the encryption which one provides uh insight to bnote then pss also about this we already spoke but releasing releasing with b we're releasing pss which is the posted surface over swarm um well secret messaging is really a core enabler of many applications of the web so the cool thing about this is really that it offers confidential anonymous untraceable disguised as junk traffic automatic new boxing and we can do this because we build pss on top of the disk and because of this pss actually inherits many of the possible many of the good properties of the disk also we're releasing the support for an external signing and we have been trying it out ourselves with clef but any other external signing in theory could be used and really this is needed to manage your private keys such that the b notes doesn't directly have access to your keys and your funds well we do this because we want to follow the best practices in security and of course we also prepare preparing for the production with bandwidth incentives or maintenance so real money right so the cool thing about this is clef is a project from within the ethereum ecosystem and of course we wholeheartedly support this then about the bandwidth incentives and ralph are you here yeah so yeah he is here cool i will stop sharing my screen so you can take over okay there you go so okay i hope that you can now see my screen so i have um no slides but i will give you a bit of a demo of those things that annoy the new release with the incentives so basically the idea is that nodes they should pay for their own bandwidth and we account for this in two the two places on the one hand when we retrieve files um on the other hand when we actually push files into the network at the same time the nodes who are forwarding the traffic so like in retrieval were helping out getting the file to you when pushing or helping out and getting the file to the destination and they should make a profit and the thing that makes this uh it's the swap accounting where basically appears to keep a tape with each other um about what the balance is like how much bandwidth did the other peer consume and then they have a settlement protocol to uh even out bigger differences in this balance so if i'm really allowing that because i consumed a lot more than i provide to another peer i would use a payment to even things out again but of course storing payments is not so tricky and the obvious way is blockchain but i'm doing small payments on the blockchain is not nice either so we're using an offline payment system um the swap checkbook which is basically a unidirectional payment channel it is one of the new features that is live now in the new release and so i will now start a b note of an on an empty directory because we are now using a blockchain based settlement layer our b node also has to be connected to a login backend node and by default if it's a start b it will look for a blockchain node on your local network on your localhost um at the standard port but if you don't have a node running locally you can specify a remote one so the all of this swarm incentive infrastructure is deployed on the goalie test net from ethereum and yeah i'm using here and then for uh in point i'm also using the debug api enabled so that we can see a bit in the debug api later on so i will now start this and because this is a new b directory it will generate a new private key and get holds a new ethereum address which of course is not um funded um so it will tell us that we can't actually do anything because in the very beginning what we have to do is we have to deploy at the very beginning uh you have to deploy the checkbook contract and for this unit both girly ether for the gas um but also the b2c token um on girly which is not the real vcc token but it's a test token that's used for now um and to get things started we have set up the faucet it's for that eastworm.org where i'm going to go now so i'm going to paste an address in here and there is a capture where you have sometimes those kind of puzzles and yeah now this faucet will change us both either but also their pcc and this will take a while because these are now really blockchain transactions and i think the blocks time on girl is 15 seconds but we can try to start again and see if it locks already um no so the fans have not arrived yet so we will have to wait a bit longer for this but now so now we see that the funds have arrived and the node is starting to deploy the slack book it tells us the transaction and now s1 in it on the very first startup it will also um send a bunch of pc tokens into the checkbook so that you are immediately liquid to do stuff um and only once you have a checkbook do to actually connect to the network and we can now look at the debug api to actually monitor or look at our checkbook and we can look at the balance for example that we have and here we have two kind of balances we have the the total balance which is the amount of um tokens that are actually on the checkbook but um what's gonna happen as we consume traffic is that we're gonna issue those tracks uh which don't do anything in the blockchain until they actually cached but still we have to we need to make sure that we don't over spend which is why we have an available balance which is kind of like the part of the balance that we have not yet used for anything cool um and our node is now running and we could try to vary some content and what we should be able to see now is that as this node connects um it starts to fetch data we can look at our swap balances where we can see how the balance changes with our peers so for every peer we have this balance and for most peers here it's a negative because negative means we owe them something and we owe them something because we're currently downloading this video here and so the negative balance is going to increase um and at some point um we it will get to the point where we are so much in debt that we need to settle so i'm not gonna wait for this here instead of going to go to this other node here which has been running a while already um and where we already had some settlements and what we can see then here is that we have issue checks what is um what is off-chain checkbook um because um this node pushed um a video into the network and therefore consumed resources and it needed to to pay for this and so it sent those tracks in order to uh yeah even out the balance again now unfortunately i don't have a node currently which has actually earned money because all the nodes that i've used with the new network was either downloading files or pushing files which are both actions that cost you money whereas if you want to earn money it's basically good to do nothing actively and if that let traffic flow through you so that you get part of the rewards during the forerunning i'm gonna hear the balances but i think this is a rather small video which is why we're not really gonna see um much of the change here we also have a couple of um endpoints available um for like click querying the text for the peers individually if we have actually received the check um you can also cast it out on the blockchain where a specific cash out operation which is the point when we actually realize um the profit that we made and we also have endpoints for like withdrawing from your checkbook depositing into it and this kind of stuff that you need maybe also interesting there's a more general settlement um well you can get this in the more compact you and most importantly we can also see uh like the sum of the things and so obviously we uh we sent a lot of settlements because we consumed a lot of resources but this node hasn't actually learned anything yet because it's still quite new in the network and since the network is very young it's probably the only node which has really pushed data into it yeah and i think that's all i wanted to show here for now well ralph that's that's amazing thanks a lot for this demo and we are sitting here and and watching with amazements at that's you know what you just demoed and uh really generally this is uh this is amazing yeah link is i i know i'm too early but i'm just to break into this thing but i just want to say like it's like maybe one of the first times i'm like really lost for words like seeing this i see this for the first time this this this thing and i totally agree on on you know this is this is really amazing i i feel like sometimes i feel like we don't realize enough what we actually have built here or what we are doing yeah yeah definitely and uh maybe this is a call to action if you are watching this and your fingers are itching because you want to make a sleek looking dashboard then um you should do so all right let's see you're looking michelle maybe your fingers are itching to start making well my fingers are itching to to actually do other things than dashboards but but but yes yeah um to try it out it is i i mean i have to focus on i'm seeing this event of course but but yeah it's it this opens up so many you know it's very inspiring to say yes yes yes but so sorry i totally interrupted because i i had to tell you guys that this is truly amazing stuff to to see yeah but please you have to finish your presentation i think yeah i mean because we're not finished yet with the amount of things okay okay i'm so sorry thanks uh ralph all right so um what i also mentioned is that the b beta right now has a couple of features to protect against junk flows so really the first basic feature here is what we call local pinning and basically local pinning is to ensure that certain chunks will be always available via your notes so basically it's put off the garbage collector for certain chunks and well those chunks will be available fire notes um this is really elemental because it ensures persistence at least for yourself and anybody who access content via your swarm notes of course that's not enough because we want content to be globally available so we have the mechanism what we call global pinning which is really some sort of a way which ensures that uh downloaders can signal to local pinners that certain content is missing so those local pinners can re-upload data so the incentives for local pinners to participate in this can be various it can be because they like the content themselves or because they have been paid to to re-upload but really the the crucial thing which we are adding here is the possibility for signaling that content is missing and for reuploading it again well why this is really the fallback recovery mechanism to ensure that at least content is potentially always available in the network and you can already use it right now if you're for example developing a tab and you don't want this that to go offline because swarm forgets things inherently um you can use global pinning we also have red listing also known as blacklisting but i won't use that word anymore from now on uh to put a certain note on a red list and automatically adjust your behavior towards them this is essential punishment basically to incentivize collaboration and to discourage misbehavior then we also have a couple of user experience improvements and first of all we have all new documentation and for this i believe dan is also on the live stream to show us around then are you here i am here um right the host needs to un stop my video though please if that's okay hi hey rinker hi dan how are you doing i'm very well very well great to hear about all their features um yes i feel a bit um outstaged by ralph's amazing demonstration there so great to see that stuff has done an amazing job um but if you guys also want to see it and play with it and uh do it for yourselves then uh you can check out unleash but we've updated it so you'll see if you go to docs.swarm.

org that'll give you hopefully very clear explanation of how to get started run your own b node and start earning bzz tokens um yeah so that's about it really there's not too much more to show but um do get in touch with any feedback um we'd love to hear from you let us know how you get on yeah all right then thanks a lot for that and you know short with powerful right because without documentation how can people start using the v-note or even understand what's happening so thanks for putting this together uh then all right i'll regain my screen uh for the last parts of my presentation i'm almost done now i promise um right so the ux improvements we have the whole new documentation um very importantly we have significant performance improvements both for uploads and downloads as i mentioned in my previous presentation here we always prioritize good architecture and we do optimizations secondly just it was possible to do it right now on death day so i don't know try out something and because we have a good architecture uh optimizations naturally fall out and really we haven't spending we haven't been spending a lot of time on optimizations but we have done 25 times better approximately so this is only the beginning you can also follow the status of your uploads specifically useful if you're uploading a big file it might take a couple of minutes even an hour if it's really big um and then tags come in handy because you can follow the status of your uploads and the cool thing about this is that dev developer or somebody developing topos form can make with this feature progress bars to give you more information and ability to react or at least to you know look at something nice while you wait print config is a feature which you can quickly use to find out the current configuration of your beam node and yeah it's really cool because you can never forget if you set the right environment variable and all the configuration is in one place then we have an install script um it's really a shell script to make it easy to install your b clients on all the operated operating system we have linux windows and os and yeah that's just convenience to use install scripts all right that's all for now about the features but i promise to talk about three things which is the past the present and the future so future comes right now um in the future um first of all we're going to focus on improving stability and performance um because let's be fair we only just started with this and kinks are reasonably to be expected which is a complex piece of software as a swarm so mainly stability we're going to start immediately and performance when times allows improving the usability we have a couple of ideas how we can improve the usability of those four nodes um but really what for us is the highest priority is if you are trying out the b nodes and you have requests for usability improvements we prioritize them um then lastly a storage incentive is really the second lag of the incentives of the swan network so the storage incentives has been thought through already and we started to plan the implementations um we will probably release storage incentives in two phases but the first phase is being spent protection and the second phase is the distribution of the income storage incentives allows and encourages those to join be compensated for the contribution and ensure that the rights to write to the disk are fairly allocated security audits of course we're going to soon have real talks of value managed by the b nodes and we don't want any funds at risk or at more risk than that is needed so we're working together with some highly renowned security audit firms to have a second look at our code base to make sure that you know it it's as best as we can of course you never know for sure um but we will try our best to uh don't put any funds at risk and lastly um we are always wanting to work with you so users and feedback i can't often say it often enough we need to start build we need you to start building on swarm uh provide us feedback and steer the developments also the core team we are looking for high profile quality assurance engineers who can support the team with quality assurance right so if you think you can work with us or you have something to provide you can reach out to us on the telegram the orange lines or on the beehive and i think this is really my last slide yes it is so thanks for having me here thanks for the time thanks for the amazing opportunity to work with everybody of you and um i hope to see you soon well thank you so much rinke um that was really amazing to see um yeah it's it's it's it's it's really cool um i i can't wait to see you back at the ama um later um i'm sorry dear audience i'm a little bit lost for worse because i truly am uh impressed with what i just witnessed um i think most of us don't realize what this means for um the sort of revolution we're trying to propagate here

Automatic transcript — names and jargon may be misspelled.