From 4927c2cffc9aaece8922c335802a947c681dffed Mon Sep 17 00:00:00 2001
From: Jaidyn Ann MORTALL KOMMBAAATTTTT!!! Mortal Kombat Legends: Scorpion's Revenge is a 2020 American direct-to-video adult animated martial arts film based on the Mortal Kombat franchise. The film centers around the titular character seeking his revenge on those who murdered his family and clan after being resurrected by Quan Chi, while Johnny Cage, Liu Kang and Sonya Blade are chosen to participate on the Mortal Kombat tournament for the fate of Earthrealm.
+
+Follow us on Twitter:
+James - https://twitter.com/cinemassacre
+Justin - https://twitter.com/JustySilverman
+Kieran - https://twitter.com/Kieeeeern
+Tony - https://twitter.com/HacktheMovies
+Mike - https://twitter.com/Mike_Matei
+
+#MortalKombat #Cinemassacre #RentalReviews Remember that scene in Troll 2, where the teens are watching that movie in their TV? It shows a guy in an ape costume touching a glowing egg, then getting shot in the air like a rocket! What with that? Well, that movie is called GRUNT from 1983, and it's some weird Italian caveman movie. Let's dive into the history of how I figured it out. Enjoy this Cinemassacre review!
+
+James Rolfe's Twitter: https://twitter.com/cinemassacre
+Mike Matei Twitter: https://twitter.com/Mike_Matei
+
+Cinemassacre Shirts, DVDs, and Blu-rays: https://store.screenwavemedia.com/collections/cinemassacre
+
+Merch on Amazon.com: https://amzn.to/2ORk1s8
+
+Teespring exclusive shirts: https://teespring.com/stores/cinemassacre
+
+Click to Subscribe: http://www.youtube.com/subscription_center?add_user=JamesNintendoNerd
+
+#Troll2 #Cinemassacre #JamesRolfe James Rolfe and Mike Matei play a silly memory game to see if they can talk about a random retro video game for 30 seconds. This is just a dumb idea we came up with on the spot as something a little different.
+
+James Twitter https://twitter.com/cinemassacre In this episode of Cinemassacre's Rental Reviews James, Justin and Kieran review G.I. Joe: The Movie from 1987, which capped off the first two seasons of the TV run. In the movie, G.I. Joe's Special Task Force finds its mission to preserve peace and freedom threatened by the evil Golobulus. Created at the height of the G.I. Joe craze in the 1980s, G.I. Joe: The Movie was intended as a theatrical release to be closely followed by The Transformers: The Movie. However, the G.I. Joe film encountered unexpected production delays which allowed the Transformers feature to be released first. Due to the poor box office performances of The Transformers: The Movie and My Little Pony: The Movie, G.I. Joe: The Movie was instead released direct-to-video as well as aired on television in syndication, first in feature-length format and later split into a five-part miniseries format as part of the series' syndication package.
+
+Follow us on Twitter:
+James - https://twitter.com/cinemassacre
+Justin - https://twitter.com/JustySilverman
+Kieran - https://twitter.com/Kieeeeern
+Tony - https://twitter.com/HacktheMovies
+Mike - https://twitter.com/Mike_Matei
+
+#GIJoe #Cinemassacre #RentalReviews Video Sponsored by Ridge Wallet:
+https://www.Ridge.com/CINEMASSACRE
+Use Code “CINEMASSACRE” for 10% off your order
+
+You Know What’s BS!? Apple’s Lack of Buttons! (YKWBS Episode 38.) The BS is back, unlike Apple bringing back their buttons. They went from keyboards with the Macintosh to a phone with one giant button, to no buttons with the iphone. It's getting ridiculous Apple!
+
+James Rolfe's Twitter: https://twitter.com/cinemassacre
+Mike Matei Twitter: https://twitter.com/Mike_Matei
+
+Cinemassacre Shirts, DVDs, and Blu-rays: https://store.screenwavemedia.com/collections/cinemassacre
+
+Merch on Amazon.com: https://amzn.to/2ORk1s8
+
+Teespring exclusive shirts: https://teespring.com/stores/cinemassacre
+
+Click to Subscribe: http://www.youtube.com/subscription_center?add_user=JamesNintendoNerd
+
+#Apple #iPhone #Cinemassacre #JamesRolfe #YKWBS James Rolfe and Mike Matei play all the Street Fight II versions on the Street Fighter 30th Anniversary Collection for Nintendo Switch
+
+#Switch #NintendoSwitch Video Sponsored by Ridge Wallet:
+https://www.Ridge.com/CINEMASSACRE
+Use Code “CINEMASSACRE” for 10% off your order
+
+In this episode of Cinemassacre's Rental Reviews, Justin and James review Drop Dead Fred from 1991. An unhappy housewife gets a lift from the return of her imaginary childhood friend, Drop Dead Fred. Rik Mayall starred as the title character: a happy, anarchic, and mischievous imaginary friend of a young girl named Elizabeth (Phoebe Cates) and nemesis of her overbearing mother Polly (Marsha Mason). He causes chaos around her home and neighborhood, but nobody can see him except her. When she grows up and has an emotional crisis, he returns to "cheer her up" in his own unique way, causing more chaos than ever before. The supporting cast included Carrie Fisher, Ron Eldard, Tim Matheson, and Bridget Fonda.
+
+Follow us on Twitter:
+James - https://twitter.com/cinemassacre
+Justin - https://twitter.com/JustySilverman
+Kieran - https://twitter.com/Kieeeeern
+Tony - https://twitter.com/HacktheMovies
+Mike - https://twitter.com/Mike_Matei
+
+#DropDeadFred #Cinemassacre #RentalReviews Here are some forgotten film franchises that world has forgotten about. James sets up some criteria and goes over a ton of worthy contenders of the biggest franchises to be discontinued and rarely talked about today, and some that might be best forgotten. Even some with 40+ movies to their series. Enjoy this Cinemassacre review!
+
+James Rolfe's Twitter: https://twitter.com/cinemassacre
+Mike Matei Twitter: https://twitter.com/Mike_Matei
+
+Cinemassacre Shirts, DVDs, and Blu-rays: https://store.screenwavemedia.com/collections/cinemassacre
+
+Merch on Amazon.com: https://amzn.to/2ORk1s8
+
+Teespring exclusive shirts: https://teespring.com/stores/cinemassacre
+
+Click to Subscribe: http://www.youtube.com/subscription_center?add_user=JamesNintendoNerd
+
+#ForgottenFilmFranchises #Cinemassacre #JamesRolfe Get your 1up card here! https://www.1upcard.com/avgn
+
+James Rolfe and Mike Matei play and compare Teenage Mutant Ninja Turtles: The Hyperstone Heist for Sega Genesis to Turtles in Time for Super Nintendo.
+
+Follow Mike Matei on Twitch ✜ https://www.twitch.tv/mikemateilive
+Twitter James ✜ https://twitter.com/cinemassacre
+Twitter Mike Matei ✜ https://twitter.com/Mike_Matei
+
+#TMNT #Retro To try Shudder free for 30 days, go to http://shudder.com and use promo code CINEMASSACRE
+
+Cinemassacre reviews Night Killer (Italian: Non aprite quella porta 3). It's a 1990 Italian horror film directed by Claudio Fragasso. On its release in Italy, it was promoted as being part of the The Texas Chainsaw Massacre. The film is not part of the series and bears little content from the previously released films. In the movie, a serial killer with a rubber-like Freddy Krueger mask terrifies the city of Virginia Beach.
+
+Special thanks to ChrisCrossMedia for the design work!!
+https://twitter.com/ChrisCrossMedia
+https://www.youtube.com/user/ChrisCrossMedia
+
+Learn Italian:
+https://www.facebook.com/trishasitaly/
+https://instagram.com/trishasitaly?igshid=gt97uyvnb331
+
+Follow us on Twitter:
+James - https://twitter.com/cinemassacre
+Justin - https://twitter.com/JustySilverman
+Kieran - https://twitter.com/Kieeeeern
+Tony - https://twitter.com/HacktheMovies
+Mike - https://twitter.com/Mike_Matei
+
+#NightKiller #Cinemassacre #RentalReviews Video Sponsored by Ridge Wallet:
+https://www.Ridge.com/CINEMASSACRE
+Use Code “CINEMASSACRE” for 10% off your order
+
+James, Justin, and Kieran traveled to the last Blockbuster Video that's located in Bend, Oregon!! They took a road trip down from Portland, after Portland Retro Gaming Expo weekend October, 2019. The sights, sounds, and smells of their old stomping grounds was like something else. A flash from the past, where you would always go every Friday night to get the newest movie releases, hottest games, or obscure b-movie rentals. Sadly, Blockbuster's 9,000 world-wide locations dwindled down to just one. But, that comes with everything turning digital... or with movies just slapped into the Red Box at your local grocery store. Regardless, the Last Blockbuster in Bend is a tribute to anyone who lived in the 90s, especially with their museum section and classic memorabilia everywhere. Thanks to the owner Sandi for allowing us to film in the store! And, sorry that our audio isn't the best, the store is very active.
+
+If you want more info about the Last Blockbuster check their socials...
+https://www.facebook.com/pages/Blockbuster/108334889510574
+https://twitter.com/blockbusterbend
+
+Follow us on Twitter:
+James - https://twitter.com/cinemassacre
+Justin - https://twitter.com/JustySilverman
+Kieran - https://twitter.com/Kieeeeern
+Mike - https://twitter.com/Mike_Matei
+
+Edited by Justin Silverman
+
+Special thanks to Deity Microphones!!
+We didn't have their products with us, sadly, but they helped us fix this audio in post.
+https://www.deitymic.com
+https://twitter.com/deitymicrophone
+
+Special thanks to ChrisCrossMedia for the design work!!
+https://twitter.com/ChrisCrossMedia
+https://www.youtube.com/user/ChrisCrossMedia
+
+Cinemassacre Shirts, DVDs, and Blu-rays: https://store.screenwavemedia.com/collections/cinemassacre
+
+Merch on Amazon.com: https://amzn.to/2ORk1s8
+
+Teespring exclusive shirts: https://teespring.com/stores/cinemassacre
+
+Click to Subscribe: http://www.youtube.com/subscription_center?add_user=JamesNintendoNerd
+
+#Blockbuster #JamesRolfe #Cinemassacre James Rolfe and Mike Matei play Columns 2 on Switch. And also discuss our first videos together. Watch "The Alternate History of Mario" (2002) By Mike Matei https://www.youtube.com/watch?v=0KmQ2Tkk6dw
+
+And if you haven't already seen this:
+It Came From Beyond the Toilet (2001) By James Rolfe
+https://www.youtube.com/watch?v=pEl4awbiafI
+
+#Cinemassacre #AVGN Install Raid for Free ✅ Mobile: https://clik.cc/4k5YI ✅ PC: https://clik.cc/yra9x and get a special starter pack 💥 Available only for the next 30 days!
+
+Cinemassacre reviews Dennis The Menace on Rental Reviews. In Dennis The Menace (1993) mischievous Dennis Mitchell (Mason Gamble) makes the life of neighbor George Wilson (Walter Matthau) miserable with his overactive energy and inadvertent troublemaking. Because his parents must leave town for work and can't find a baby sitter for Dennis, they ask George and his wife, Martha (Joan Plowright), to take care of him. But when burglar Switchblade Sam (Christopher Lloyd) breaks in to steal George's gold coin collection, he takes Dennis as a hostage, and crusty George must save the boy.
+
+Special thanks to ChrisCrossMedia for the design work!!
+https://twitter.com/ChrisCrossMedia
+https://www.youtube.com/user/ChrisCrossMedia
+
+Follow us on Twitter:
+James - https://twitter.com/cinemassacre
+Justin - https://twitter.com/JustySilverman
+Kieran - https://twitter.com/Kieeeeern
+Tony - https://twitter.com/HacktheMovies
+Mike - https://twitter.com/Mike_Matei
+
+#DennisTheMenace #Cinemassacre #RentalReviews Go to https://expressvpn.com/cinemassacre to take back your Internet privacy TODAY and find out how you can get 3 months free!!
+
+Angry Video Game Nerd (AVGN) episode 179: Dennis the Menace. Hey! Mr. Wilson!! Here's the Nerd playing the 1993 Super Nintendo game Dennis the Menace. It's a licensed game based on the movie, which is based on the old show and comic from the 50s and 60s. The game was designed by Ocean, which is basically the British LJN. The Nerd hasn't done a full review episode on an SNES game in a while, so, here you go!!
+
+James Rolfe's Twitter: https://twitter.com/cinemassacre
+Mike Matei Twitter: https://twitter.com/Mike_Matei
+
+Crew: Justin Silverman, Kieran Fallon, Antonio Piluso
+https://twitter.com/JustySilverman
+https://twitter.com/Kieeeeern
+https://twitter.com/hackthemovies
+
+Thumbnails and extra design by Chris Pavlou:
+https://twitter.com/ChrisCrossMedia
+https://www.youtube.com/user/ChrisCrossMedia
+
+Background music by Apebit: https://apebit.bandcamp.com
+
+--
+
+Cinemassacre Shirts, DVDs, and Blu-rays: https://store.screenwavemedia.com/collections/cinemassacre
+
+Merch on Amazon.com: https://amzn.to/2ORk1s8
+
+Teespring exclusive shirts: https://teespring.com/stores/cinemassacre
+
+Click to Subscribe: http://www.youtube.com/subscription_center?add_user=JamesNintendoNerdFollow
+
+Mike Matei on Twitch: https://www.twitch.tv/mikemateilive
+
+Angry Video Game Nerd Playlist: https://www.youtube.com/playlist?list=PL2B009153AC977F90
+
+#AngryVideoGameNerd #DennisTheMenace #AVGN179 #Cinemassacre James Rolfe and Mike Matei play Mario Kart 8 Deluxe for Nintendo Switch
+Follow Mike Matei on Twitch ✜ https://www.twitch.tv/mikemateilive
+
+Twitter James ✜ https://twitter.com/cinemassacre
+
+Twitter Mike Matei ✜ https://twitter.com/Mike_Matei
+
+Mike’s Instagram
+https://www.instagram.com/mikemateilive
+
+Support Mike Matei on Patreon https://www.patreon.com/MikeMatei
+
+
+Read Mike Matei Blog ✜ http://www.mikematei.blog
+
+#Switch #Mario
Identity is a key part of how we all interact with each other on the internet every day—sometimes every moment of every day. And sometimes each raging moment as we do the “forgot your password?” dance yet again. Regardless, forging a path forward for user-controlled online identity is a table-stakes requirement for the dweb to succeed.
+ +But, identity is hard. There are no easy solutions for interoperable decentralized digital assertions of self. Privacy, security, validity, access control, surveillance, GDPR, KYC, anonymity. It’s like Inception but each nested dream level is the same minefield, and those minefields are littered with projects that’ve tilted at the identity windmill, leaving naught behind but vinyl stickers slowly being covered up on our laptops.
+ +Hope has not forsaken this land. The Decentralized Identity Foundation has been plugging away at this challenge for many years, as have groups like Rebooting the Web of Trust. And there’ve been efforts to build decentralized identity systems on top of IPFS, such as IPID, Nomios.io, the IPFS IDM, and most recently the Ceramic Network.
+ +However, today we’re celebrating the launch of a decentralized identity protocol and service from an unlikely place: Microsoft.
+ +Microsoft has been increasingly present in open-source tools and services in the past few years, and has now launched a standards-based decentralized identity service called ION.
+ ++ +
+ +ION has been under development for over a year, and is an instance implementation of Sidetree (a blockchain-agnostic distributed PKI protocol) that runs on the Bitcoin blockchain.
+ +And it stores transaction data on IPFS.
+ ++ +
+ +Like HTTP, IPFS does not have user identity built into the protocol. However, IPFS provides resiliency, validation, and future-proofing features that HTTP cannot:
+ +The ION implementation is in JavaScript (specifically, TypeScript) so it made sense for them to use js-ipfs as a Node.js service. ION rolls up batches of identity transactions, publishes it through their IPFS node, and then writes the address (CID) of that batch to the Bitcoin blockchain.
+ +In order to meet Microsoft’s needs for using js-ipfs as a long-running process we added cancelable requests to all APIs, ensuring that as requests were being made and handled, the underlying objects, memory, file handles, and other resources created up and down the stack are cleaned up properly. Huge thanks goes to Alex Potsides (@achingbrain) for implementing this long-needed feature, which shipped in js-ipfs 0.44.0.
+ +What this looks like for developers is the ability to set timeouts on requests:
+ +const cid = new CID('QmWillNeverResolve')
+
+try {
+ await ipfs.get(cid, {
+ timeout: 1000 // abort after 1000ms
+ })
+} catch (err) {
+ console.err(err) // err is a TimeoutError
+}
+
+
+This is the public beta of ION, and it is now running live on the Bitcoin blockchain.
+ +In the launch post, Microsoft’s ION project lead Daniel Buchner explains how to run a node and use decentralized identities in your apps and services today.
+ +The project is open source, built on open standards, and you can run your own node—so try it out or contribute to the project today!
+]]> + + +Here’s what’s happening in the InterPlanetary File System galaxy! 🚀
+ +Next week the IPFS community will be gathering for a virtual meetup on June 17th. Join us for a deeper dive into our latest releases, meet the IPFS core developers, and sign up to give a demo of your own!
+ + + +The JavaScript implementation of IPFS recently shared their latest progress on the IPFS blog. Goodies include Bitswap 1.2.0, much faster file transfers, and go-ipfs 0.5.x compatibility.
+ + + +Earlier this month, Powergate, Textile’s API driven solution to deploying multi-tiered storage based on IPFS and Filecoin into systems and applications, shared some insight into the project’s development progress. Up next? The JavaScript Powergate Client.
+ + + ++ +The 2 tech projects I'm most curious about right now are @AnytypeLabs (a self-hosted Notion) + @IPFS (a decentralized HTTP alternative). Worth looking into if you're a tech/web/UX enthusiast! https://t.co/0iMMvgCtFN
— Lazlo (@__lazlo) June 8, 2020
Community Engineer, libp2p: Help introduce new open source projects to libp2p and clear hurdles for them to adopt the libp2p stack for the networking layer of their system. Protocol Labs, Remote
+ +Engineering Manager, IPFS: Engineering managers have the challenging and exciting task of supporting and empowering engineering teams to deliver complex internet-scale systems in an environment defined by curiosity, passion, and a love for open source. Protocol Labs, Remote
+ +IPFS Community Lead: Provide tactical support for the IPFS community, creating a global community strategy, and executing this strategy on the ground! Protocol Labs, Remote
+ +Senior Software Engineer Rust/Go: You would be working with our distributed team of engineers on new products, core protocols or client projects. Most of the work we do is or will eventually be open source. Equilibrium, Remote
+ +Software Engineer, the Underlay Project: Strong full-stack web developer with an interest in semantic web and decentralized web technologies. The Knowledge Futures Group, Remote
+ + + +Take care of yourselves and each other. ❤️
+ +Get involved with IPFS by checking us out on GitHub, joining discussions on our community forum, or hitting us up in chat. Have a suggestion? Email us.
+ +Get the IPFS Weekly in your inbox, each Tuesday.
+]]>What makes libp2p different from the networking stack of today is its focus on transport agnosticism, modularity, and portable encodings (like multiaddr). These properties make libp2p the networking layer of choice for most new dweb projects, blockchains, and peer-to-peer applications. Read more about why projects are choosing to build on libp2p, or watch the recent talk from Tech Lead Raul Kripalani at DevCon5.
+ +The past year has seen amazing improvements to libp2p with the protocol quickly becoming the de facto web3 networking layer for a huge swath of projects.
+ +Probably the most significant news on that front is the official adoption of libp2p as the networking layer for the Ethereum 2.0 Network Specification. Ethereum 2.0 is the next generation of Ethereum, with a large and thriving network of clients, dapps, and developers. A big focus for libp2p in 2019 was leveling up stability, scalability, and ease of use to meet the requirements of such a large scale blockchain.
+ + + +libp2p now has 7 language implementations:
+ +The other major new blockchain building on libp2p is Filecoin which plans to launch their public storage and retrieval network this summer. With over 7.5 PB of storage already live across an active community of testnet miners, a big focus for libp2p in 2019 was landing the performance and hardening improvements to meet Filecoin’s needs.
+ +In addition to Filecoin and Ethereum 2, there are now more than two dozen projects building directly on libp2p, including: Polkadot and Parity Substrate, Nervos, Status.im, Paratii, 0x, Coda, Enigma, Flow, Harmony, Golem, Keep Network and Validity Labs. Groups like Matrix.org are also in the early stages of adding libp2p support to their applications, helping their users benefit from the resilience and openness of p2p networking.
+ +These newcomers to the libp2p ecosystem are a big deal - but they actually still make up less than half of all active libp2p nodes! The vast majority of libp2p end users come from dapps, tools, and projects using libp2p through IPFS, the InterPlanetary File System!
+ +Millions of end users and over 100,000 libp2p nodes participate in the IPFS network every week. Organizations like Opera, Ethereum, Brave, Netflix, Microsoft, and Cloudflare have joined the IPFS ecosystem, and hundreds of nascent community-owned projects like Audius, Fleek, Textile, Qri, Pinata, OpenBazaar, Berty, Infura and 3Box are building their businesses with IPFS.
+ +The focus for the year was hardening and evolving the stack - and we blew that out of the water! Here are some of the features the core team and our community have contributed to libp2p:
+ +Releases
+ +We saw huge growth in the libp2p team and community this year, with presentations and workshops at a variety of conferences including EthCC 2, Web3 2019, EthBerlin Zwei, IPFS Camp, ReadyLayerOne, DevCon V (talks: state of libp2p, gossipsub), and more.
+ +The libp2p project also launched a development grants program. The initial kickoff for the program at EthBerlinZwei led to several significant features being implemented by the community, including Noise handshakes in Go and Lua Wireshark dissectors. The bounties program is a great way to get involved in the libp2p project. Check it out on GitHub!
+ +Throughout the first half of the year, our top focus was supporting the needs of current and in-flight adopters, especially IPFS, Eth2, and Filecoin. So far, we have delivered on the following.
+ +To support IPFS and all our other dapp users out there, we’ve improved libp2p’s content routing and connectivity to make finding and sharing content in distributed networks fast and reliable. This meant we needed to dive deep into major systems like the libp2p DHT, providing subsystem, NAT traversal, and more to optimize and refactor for performance. We’ve been collaborating closely with Protocol Labs’ IPFS and Testground teams to make this a reality. Read more about our progress in the IPFS 0.5 launch post, and our path to get there in the Road to the New DHT post!
+ + + +What is Testground you ask? Only the coolest new testing tool for large-scale p2p networks! When starting our network upgrade plans, it was clear that the scope and complexity of changes we’d need to make to core IPFS network functions would be impossible to optimize without powerful testing tools to simulate each change to network performance at scale. We couldn’t find a tool with the scale and configurability we needed, so we built the testing tool we needed, and made it modular and system agnostic just like libp2p so other p2p networks can take advantage of this new OSS infrastructure too!
+ + + +For our large blockchain users, the focus of Q1 was stability, scalability, and security hardening. We designed and implemented a new version for the Gossipsub protocol, v1.1. This new P2P PubSub router includes several security extensions that add a protection to Sybil, eclipse, and spam attacks.
+ +This work is of extreme importance as our adopters (e.g., Filecoin and Ethereum 2.0) require a secure messaging layer to distribute their time sensitive and valuable data, without being vulnerable to malicious actors.
+ +You can find the specification and implementation on GitHub. We will be releasing a report that fully describes how we identified the attack vectors, developed the motivations and went through implementing, testing, evaluating under multiple network conditions and got it audited. Stay tuned.
+ + + +Both of these workstreams (content routing performance and gossipsub hardening) continue to be top priorities with IPFS having launched go-ipfs 0.5 (their largest network upgrade in years), and Ethereum and Filecoin gearing up for Q3 mainnet launches, as well as other adopters such as Polkadot (who went live recently!), Flow, Coda, 0x, Matrix, Keep Network, Enigma, Harmony, Golem, Validity Labs, etc., reaching new milestones.
+ +Furthermore, in H2 we plan to work on protocol negotiation enhancements, a more efficient connection boostrapping flow, an implementation alignment framework (including a long-awaited conformance test kit), code refactors, and a lot more!
+ +Protocol Labs’s small and scrappy libp2p core team transformed into a true force of nature with some great additions last year. Our doors will continue to be open for great people from both inside and outside of the ecosystem.
+ +In particular, we’re looking for a new Project Lead to help grow and steward the libp2p project and ecosystem to new heights in 2020. Check out the role description for more specific details and information on where you can apply. In particular, we’re looking for candidates with proven leadership experience, a passion for p2p tech, and an interest in scaling the libp2p community as it becomes critical infrastructure for new, large users such as Ethereum (with launch of the Beacon chain) and Filecoin.
+ +Excited about building the networking stack for a more resilient, upgradeable, open network for humanity’s knowledge? We’d love to get in touch! Apply, or just shoot mike@libp2p.io a quick email with your thoughts or questions!
+ +2019 was a fantastic, high growth year for the libp2p project and 2020 is already well on track to be even more exciting. Huge thank you to the thousands of community members who contributed to all the new language implementations, feature improvements, performance speedups, and amazing projects bringing libp2p directly to end users.
+ +Thank you for your support! We’re excited to continue working with you to build libp2p.
+ +References:
+ + +]]>++ +Bitswap 1.2.0, transfer speed improvements & go-IPFS 0.5.x compatibility
+
Blink and you’ll miss it, js-IPFS@0.45.0
js-IPFS@0.46.0
has been released; goodies include Bitswap 1.2.0, much faster file transfers, and go-IPFS 0.5.x compatibility!
Version 1.2.0 of the Bitswap protocol has landed in js-IPFS
and brings a host of performance improvements around coordinating the supply of blocks to peers across the network. For example, peers can now respond to WANTs with messages saying they have the block but not sending it, in order to later send multiple blocks in one message instead of many small messages resulting in less chatty network operations and faster overall transfer times.
See ipfs/js-ipfs-bitswap#204 for more!
+ +The Bitswap module has had a bit of an overhaul and is now much faster at pulling blocks from other nodes across the network. Before, we waited a little while before sending our wantlist to newly connected peers—we’ve reduced that window and seen a massive speedup (smaller bars are better):
+ + + +As you can see, the new js-IPFS is about 3x faster at pulling large files from other nodes on the network than the previous release, and that increases to about 5x as the files get smaller.
+ +We’re not stopping there though, there are plenty more performance improvements on the way!
+ +See ipfs/js-ipfs-bitswap#224 for all the details.
+ +The new version of go-IPFS brought a whole slew of changes with it—check out our blog post for more details.
+ +The good news is js-IPFS has taken on a whole heap of these features and the ipfs-http-client
is now 100% compatible with go-ipfs@0.5.x
. Your js-IPFS
nodes will now happily chat away to go-IPFS
nodes over the network via Bitswap and gossipsub too.
See ipfs/js-ipfs#3013 for the full rundown.
+ +ipfs.dag.get
or ipfs.cat
for example) will now cause those blocks to be removed from your wantlist (ipfs/js-ipfs-bitswap#214)ipfs.dht.get(key, [options])
accepts a string or a buffer as key
(#3013) (0900bb9)ipfs.config.get([key,] [options])
- key
is optional again (#3069) (d043138)ipfs.ls
no longer supports a sort
option (#3013) (0900bb9)ipfs.key.gen
defaults to 2048 bit RSA keys (#3013) (0900bb9)Check out the js-IPFS Project Roadmap which contains headline features organised in the order we hope them to land.
+ +Only large features are called out in the roadmap, expect lots of small bugfix releases between the roadmapped items!
+ +Would you like to contribute to the IPFS project and don’t know how? Well, there are a few places you can get started:
+ +help wanted
label in the js-IPFS repoThe best place to ask your questions about IPFS, how it works, and what you can do with it is at discuss.ipfs.io. We are also available at the #ipfs
channel on Freenode.
Here’s what’s happening lately in the InterPlanetary File System galaxy and beyond! 🚀
+ +At the end of April, we released our largest update yet: go-ipfs 0.5.0. This upgrade brought major performance and reliability improvements to IPFS — especially on the content discovery and routing front. We’d like to take you through our journey to re-write the DHT. Read the full story on the blog.
+ +Last week, we shipped the latest release for js-ipfs, version 0.44.0! Meaning, you can now use AbortControllers to cancel requests in js-ipfs! No more waiting around to see if your request ever completes. Read the changelog post for full details on the release.
+ +The Gossipsub Task Force has been hard at work exploring and analyzing various attack vectors on public and permissionless messaging networks. With that knowledge, we’ve crafted and iterated on mitigating strategies to make our beloved libp2p PubSub Router work in adversarial environments. The result is Gossipsub v1.1.
+ ++ +My portfolio now also runs on IPFS!
— M Fletcher🧔🏽| MF Codeworks 🛰️💻 (@mfcodeworks) May 24, 2020
Thanks to the awesome people @FleekHQ my portfolio now has a version available that's #Decentralized at https://t.co/cA2pof8kjP#web #webdevelopment #ipfs #ipns #blockchain #dweb #dapp #angular #js #blog #portfolio #forhire
This Friday through Sunday, members of the IPFS, Dat, I2P, WebTorrent communities and more, will gather to talk all things distributed for a special hands-on event: Distributed Camp 2020. Enjoy two days of immersive, hands-on workshops where you get to try out some of the latest web technologies for yourself and a Sunday Unconference where you get to learn of other projects in this space as well as show off what you made! Registration is free.
+ +Then we want to hear from you! Your input would really help to shape the plan for changes that we hope will improve your and your users’ experience. Check out the discussion on reducing js-ipfs overhead by sharing node across browser tabs now!
+ +Check out the full playlist of presentations from the event, from insights on content routing changes and improvements to the intricacies of Bitswap and subdomain gateways! And don’t forget to watch the lightning talks. Enjoy!
+ +Take care of yourselves and each other. ❤️
+ +Get involved with IPFS by checking us out on GitHub, joining discussions on our community forum, or hitting us up in chat. Have a suggestion? Email us.
+ +Get the IPFS Weekly in your inbox, each Tuesday.
+]]>++ +Cancellable requests and a new browser datastore
+
js-IPFS@0.44.0
is out of the door with support for cancelling requests and a leaner, meaner datastore for the browser!
A user should be able to cancel long-lived asynchronous API operations. For example, if you are fetching the content for a CID from the network, and that CID is not resolveable, you should be able to set a timeout value for the request, after which the content would no longer be sought and control would be returned to your code with an error message describing what happened.
+ +This is not as straightforward as it seems in JavaScript because a Promise is returned from the API call to resolve a piece of content and the Promises spec includes nothing about cancelling a Promise.
+ +However, the browser fetch API has a notion of an AbortSignal which can be used to abort web requests. They are interacted with via an AbortController:
+ +const controller = new AbortController()
+
+setTimeout(() => {
+ controller.abort()
+}, 1000)
+
+try {
+ await result = fetch('http://example.com', {
+ signal: controller.signal
+ })
+} catch (err) {
+ console.err(err) // prints: user aborted the request
+}
+
+
+We’ve taken this approach and integrated it into every API call, so you can now use AbortControllers to cancel requests! We’ve also used this mechanism to add a timeout
option to every API call which internally uses an AbortSignal to stop the request and throw a TimeoutError after the specified amount of time:
const cid = new CID('QmWillNeverResolve')
+
+try {
+ await ipfs.get(cid, {
+ timeout: 1000 // abort after 1000ms
+ })
+} catch (err) {
+ console.err(err) // err is a TimeoutError
+}
+
+
+You could also roll this yourself:
+ +const cid = new CID('QmWillNeverResolve')
+const controller = new AbortController()
+
+setTimeout(() => {
+ controller.abort()
+}, 1000)
+
+try {
+ await ipfs.get(cid, {
+ signal: controller.signal
+ })
+} catch (err) {
+ console.err(err)
+}
+
+
+The AbortSignal is passed all the way down the call stack to the libp2p and ipld components that underpin IPFS. In this initial release, timeouts are supported by the IPFS layer and in future releases libp2p and ipld will use the AbortSignal to also free up resources and perform any other necessary cleanup that would have been done if the request had completed successfully.
+ +js-IPFS@0.44.0
brings a new datastore to the browser. In the browser, all blocks and other repo data is currently stored in IndexedDB, given that it is the only way available to persist and query large amounts of user data at the time of writing.
In node and go-ipfs, LevelDB has been the datastore of choice for application data (though blocks have been stored on the filesystem) and go-IPFS is moving to Badger).
+ +Out of this grew interface-datastore — a spec for storing key/value pairs implemented by the datastores used by IPFS. In the browser this was datastore-level which was backed by level-js, which was backed by IndexedDB.
+ +Phew.
+ +To remove a few layers here, we’ve created the datastore-idb which implements the interface-datastore spec, backed by IndexedDB without going via level.
+ +What does this mean?
+ +The new datastore is smaller and faster and the upgrade is seamless since it’s still IndexedDB under the hood:
+ +datastore-idb up to 44% faster and 69% smaller
+
+batch idb x 5.26 ops/sec ±4.57% (29 runs sampled)
+batch level x 2.92 ops/sec ±3.76% (19 runs sampled)
+Fastest is batch idb
+
+size 37.32KB to 11.41KB
+
+
+ipfs.block.put
now accepts the pin
argument in line with go-ipfs #3015typeof
bug when passing timeout to dag.get (#3035) (026a542)Check out the js-ipfs Project Roadmap which contains headline features organised in the order we hope them to land.
+ +Only large features are called out in the roadmap, expect lots of small bugfix releases between the roadmapped items!
+ +Would you like to contribute to the IPFS project and don’t know how? Well, there are a few places you can get started:
+ +help wanted
label in the js-ipfs repoThe best place to ask your questions about IPFS, how it works, and what you can do with it is at discuss.ipfs.io. We are also available at the #ipfs
channel on Freenode.
The gossip you’ve heard on the streets is correct, Gossipsub v1.1 is here and it packs several security hardening extensions along with new testing, documentation, and an updated specification.
+ +The Gossipsub Task Force has been hard at work exploring and analyzing various attack vectors on public and permissionless messaging networks. With that knowledge, we’ve crafted and iterated on mitigating strategies to make our beloved libp2p PubSub Router work in adversarial environments. The result is Gossipsub v1.1 🚀
+ +If you are new to libp2p PubSub and especially Gossipsub, we recommend checking out the Gossipsub v1.1 talk at the Matrix Virtual Meetup. It will give you the complete motivation and background of libp2p PubSub and introduce you to Gossipsub v1.1.
+ +The main focus for Gossipsub v1.1 is security. In addition, to the speedy message propagation guarantees from v1.0, this new version features several hardening extensions that make Gossipsub more resilient to a wide range of attacks. Some highlights include:
+ +1) Peer scoring: Peers now monitor their directly-connected neighbours using a score function that reflects the peer’s usefulness. Well-behaving peers are kept in the mesh, while badly-behaving ones are dropped in order to protect the network from malicious actors.
+ +2) Adaptive gossip dissemination: In this new version, you can adjust the gossip factor
to control the number of peers your node gossips with. This enables you to increase/decrease the amount of gossip, while keeping a baseline.
3) Opportunistic Grafting: A new mechanism used to cherry pick well-behaving peers that are currently not part of a node’s mesh. Those well-behaving peers are then opportunistically inserted into the mesh to improve the median score of participating peers.
+ +4) Prune Peer eXchange: Prune Peer exchange gives a node a set of recommended peers to connect when it gets dropped from another peer’s mesh, helping reduce the dependency on ambient peer discovery mechanisms.
+ +5) Extended Message Validators: You can now add your custom message validator so that you can instrument Gossipsub to recognize (accept/reject) which messages are valid/invalid within the context of your application.
+ +6) Outbound Mesh Quotas: In v1.0 mesh peers are randomly selected, without any weight given to the direction of the connection. In contrast, v1.1 implements outbound connection quotas, so that a peer tries to always maintain a number of outbound connections in the mesh.
+ +The blend of these security measures, together with the properties of the “gossiping mesh” check the two most important boxes for message propagation protocols in permissionless networks, namely: i) fast message propagation, ii) security against attacks that attempt to degrade the quality of the service provided by the network.
+ +All of these upgrades can be consulted in the Gossipsub v1.1 specification, which if you ask us, it is a joy to read!
+ +Additionally, with the new release, the reference implementation of Gossipsub got additional documentation and test coverage.
+ +We’ve prepared a brand new example for you to give the latest Gossipsub a try. In this example, you get to experiment with a chat application powered by libp2p. It will enable you to join different channels by subscribing to PubSub topics and see other peers joining the room as they subscribe to the topic.
+ ++ +
+ +You can find the code for this example at https://github.com/libp2p/go-libp2p-examples/tree/master/pubsub/chat
+ +We are also releasing a brand new libp2p Test Plan that uses Testground to benchmark Gossipsub v1.1.
+ ++ +
+ +With this Test Plan, you can run an emulation (yes, it will run real Gossipsub nodes!) of a Gossipsub Network in which you can adjust:
+ +To play with this Test Plan, check the instructions at https://github.com/libp2p/test-plans/tree/master/pubsub.
+ +We’ve worked with networking, P2P, and security researchers to create this iteration of Gossipsub v1.1 and we’ve been cooking a comprehensive analysis report to share with you on our approach and how we evaluated our mitigation strategies. We are shooting to share this report in June, stay tuned!
+ +That’s it for now. Hope you enjoy the release and happy gossiping!
+ +The Gossipsub Task Force - David Dias, Dmitris Vyzovitis, Yiannis Psaras, Yusef Napora, Dirk McCormick
+]]>Here’s what’s happening lately in the InterPlanetary File System galaxy and beyond! 🚀
+ +IPFS Project Lead Molly Mackinlay was recently a guest on the Zero Knowledge Podcast talk about her experience guiding the IPFS project, as well as libp2p, Bitswap, Testground, the use cases and projects working with these tools, and the specific upgrades made with the recent 0.5 IPFS release. Enjoy!
+ +True, the IPFS Pinning Summit has come and gone, but if you missed it, we have you covered. Watch all of the videos from the event and be sure to read our recap from the two-day summit.
+ +Then we want to hear from you! Your input would really help to shape the plan for changes that we hope will improve your and your users’ experience. Check out the discussion on reducing js-ipfs overhead by sharing node across browser tabs now!
+ ++ +Using #ENS and #IPFS to share our #Filecoin mining installation video provides us better robustness and censorship resistance. https://t.co/MoVtHqRocf
— Neo (@NeoGe_IPFSMain) May 14, 2020
In order to help prioritize future improvements to IPFS tooling and interfaces, we’d appreciate learning more about how the IPFS Desktop app and the in-browser IPFS GUI (also known as Web UI) fit into your overall workflow. This survey should take no more than 5 minutes, and will make a big difference—so thank you in advance for your time!
+ +Take care of yourselves and each other. ❤️
+ +Get involved with IPFS by checking us out on GitHub, joining discussions on our community forum, or hitting us up in chat. Have a suggestion? Email us.
+ +Get the IPFS Weekly in your inbox, each Tuesday.
+]]>At the end of April, we released our largest update to go-ipfs to date: IPFS 0.5.0. This upgrade brings major performance and reliability improvements to IPFS — especially on the content discovery and routing front. These gains are brought to you largely by our rework of the Distributed Hash Table (DHT) which powers most peer and content discovery in the IPFS Public Network.
+ +We’d like to take you through our journey to re-write the DHT - from identifying the underlying issues, to how we approached designing a solution, to ensuring it would work in practice. Our work led to major performance gains, as well as a new development process and Testground, a whole new tool for large-scale network testing (read more).
+ +If you want to make use of these new improvements, please upgrade IPFS now!
+
+ +
+ +The DHT, or distributed hash table, acts like both a catalog and navigation system for IPFS, helping the network keep track of and find data. A regular hash table is a key-value store where the keys are hashed and stored in one place. In the case of IPFS, the keys are the Content Identifiers (CIDs) of a block of data, and the values are the set of peers who have each block.
+ +The DHT distributes and stores these pairs of keys and values in small tables across many nodes or peers throughout the network. Peers, in turn, store information about where to physically locate specific content. Kademlia, our DHT implementation, helps keep track of which nodes are providing what data to others in the network.
+ +In theory, the DHT should make finding, providing, and fetching data among nodes a well-orchestrated and very efficient affair. However, throw in real world conditions and a rapidly scaling network, and things can go awry.
+ +The IPFS Public Network experienced substantial growth last year, quickly scaling 30x, with hundreds of thousands of nodes now participating in the network! Major software deployments and new decentralized apps came on board with expectations for a production-ready network with the reliability and performance to match. Many were using IPFS as a decentralized CDN (Content Delivery Network) to share and find content across the network. Unfortunately, due to a proliferation of new nodes unable to route peers to the desired content, the network was letting some of these users down.
+ ++
+ +In early 2019, we started to hear rumblings around content routing issues, which were exacerbated as more and more nodes joined the network over Q1 and Q2 - many of them behind home firewalls or NATs. We were constantly bootstrapping and patching the network to remedy performance and reliability issues. But, we couldn’t really test the efficacy (or truly diagnose any regressions) of these patches until they were in production, making it hard to iterate and try out larger fixes to network configuration.
+ +We clearly had a problem, and we were hearing about it from the community. Our first step was to investigate thoroughly to determine what fixes we should prioritize first, and identify the tooling we needed to land our changes successfully.
+ +After some investigation, it was clear that our DHT implementation, combined with the recent growth of undialable nodes, was the culprit behind the slow, unreliable content routing. We had a chance to investigate this more deeply while we were together at IPFS Camp, and discovered a few problem areas:
+ +With this analysis and the feedback synthesized from our core users and community, it was clear we needed to hone in on content routing performance as a core focus for the IPFS Project.
+ +This meant some hard calls on prioritization: focusing our working groups on a targeted set of improvements to the DHT and routing logic to ensure we resolved these underlying performance and reliability concerns. In turn, we adjusted our product roadmap and stood up new core working groups, including one focused strictly on content routing and another on a new test infrastructure: Testground.
+ ++ +
+ +We’d learned from our early patches that a network of our size needs to be able to test changes in a close to real-world setting to be able to make improvements quickly and reliably. We had the means to do unit tests and small simulations that could prove out basic tweaks, but no way to replicate thousands of nodes or typical network configurations in order to benchmark major changes. This left us without real data on the true impact of changes until they had gone live.
+ +We had to change this quickly to be successful in righting the DHT. We formed a working group to remedy this gap; Testground was born. Testground is a platform for testing, benchmarking, and simulating distributed and peer-to-peer systems at scale, allowing us to validate the needed fixes and pressure test the broad DHT changes before IPFS 0.5.0 went live.
+ +Testground gave us the tools to do data-driven development in our DHT rewrite. It also helped us in other parts of the IPFS 0.5.0 release: like prototyping new potential solutions, comparing potential fixes against each other, and stress-testing the edge cases and upgrade process. The repeatability and introspection Testground gave us was critical to accelerating our development velocity to reliably improve IPFS.
+ +With the launch of Testground v0.5, we’re excited to share this tool with others as well to benchmark and evaluate their p2p networks. Start using Testground today!
+ +With Testground, we were able to benchmark and quantify our DHT issues around peer availability, query termination, and routing table maintenance. We started with simulations of the existing network - showing how our previous query logic interacted with evolving network parameters, like many nodes being undialable.
+ ++
+ +Testground allowed us to tweak these parameters to measure which changes would have the most impact on network performance. As we gathered for a Research Summit in January to compare potential mitigations to the ongoing network challenges, we were now empowered with a quantitative understanding of the network structure and the tools to immediately prototype and test out the resulting hypotheses from our discussions.
+ +What followed was a whirlwind of test-plan writing to measure each change to the DHT logic in a real-world network setting. We tested our new systems for diagnosing undialable peers and removing them from our routing tables, measured success rates for ending our queries earlier, and even re-benchmarked our improvements to Bitswap to find additional improvements. Throughout these refactors, we were able to continually validate the performance of these changes with our Testground simulations, as well as a few well-placed canary nodes to run benchmarks against the full public network.
+ +With these tools in hand, we sprinted 🏃♂️💨 from the summit to our release to make it all happen. From identifying the problem with the community, to scoping potential solutions, building testing tools, learning from past research, and executing on the needed technical fixes - this marathon of a release certainly put us through our paces - resulting in an epic list of new and improved features.
+ +Up next, in Part 2 of this DHT Deep Dive, we’ll walk you through exactly what’s new with the DHT and go even deeper on the improvements we saw. In the meantime, if you haven’t upgraded yet, please do. We’ll all reap the benefits of a more performant DHT as more and more nodes update!
+ +The first-ever IPFS Pinning Summit brought together IPFS pinning services, infra providers, and users for 2 days of presentations & meetings to discuss the current state of IPFS infrastructure, services, and tools - and the future opportunities in this space.
+ +Day 1 focused on the accelerating growth of the IPFS ecosystem - especially the adoption and improvement of IPFS tooling and support for verticals like Web3 applications, DevOps pipelines, and Large Data on IPFS. The day also included presentations from major IPFS pinning services like Infura and Pinata, tools smoothing the IPFS upgrade UX like Fleek and UnstoppableDomains, and applications building on top of IPFS with strong use cases for IPFS infrastructure and tooling like Ceramic, Ucam, and Filecoin.
+ ++
+ +IPFS Project Lead Molly Mackinlay called the next 18 months a “critical period” for the IPFS community. “There are lots of key applications and projects being built, improving the ecosystem, and all kinds of developer tools are arriving that are transforming how applications and users of IPFS end up using the system,” Mackinlay said. “All of these developer tools and systems are changing the nature of how people store and move data.”
+ +The Summit also welcomed a host of IPFS collaborators to the stage, who demoed their work and shared tips on running dweb infrastructure and techniques for improving these services. Here are a few ecosystem highlights:
+ +
+
+
Day 2 focused on the future - with Juan Benet, creator of IPFS & Filecoin, highlighting new opportunities and improvements coming to the space, including a unified IPFS Pinning API, deeper integration of network services into IPFS tools like IPFS-Desktop and WebUI, and new capabilities like Powergate to bring Filecoin persistence to IPFS pinning services.
+ +The IPFS Pinning Summit brought together 100+ participants for product demos, deep-dives into ecosystem progress, and lightning talks on new tools. Talks dived into how infra providers could tune their services to enhance growing verticals like video, gaming, or browsers - or how they might offer new, specialized products for private networks, access control layers, or network introspection.
+ +Presentations also explored new opportunities related to the upcoming Filecoin Network launch - which adds an incentive layer to distributed data storage in IPFS. Filecoin Leads Pooja Shah and Juan Benet shared a number of new ways to integrate Filecoin to augment and enhance existing web3 infrastructure - like using Textile’s Powergate to create Filecoin-backed IPFS Pinning Services.
+ ++
+ +Watch all of the sessions here, including lightning talks on Filecoin’s GUI, Git on Threads, the Filecoin Discover Project, and many more.
+ +Thanks for an amazing summit, and looking forward to the next wave of adoption and growth we create together! 🚀
+]]>