Tumgik
#IPFS
canmom · 11 months
Text
since this seems to be my topic of obsession for today...
turns out Bluesky internally uses content-based addressing and IPFS. I don't have a lot of use for it since it's a Twitter clone, and I've never got on very well with Twitter. Bluesky hides most of that from the user - it looks just like any old web app backed by a central server. i need to look into this more, Bluesky is taking inspiration from IPFS but it's using its own protocol, and it is doing some good things. I think its protocols could be used for something more Tumblr-like.
there's a protocol called PubSub which sounds like it does a lot of what I want, or rather gives you the low-level framework to broadcast info across a decentralised network. you could build a social network on top of that. IPFS uses it as one way of handling mutable data, like 'my website just updated'.
there's an absolute plethora of ideas, protocols, and tools for decentralised file sharing, decentralised messaging, decentralised social networks. this broad idea space is very much the hot new thing at the moment. some of them seem like they're growing. a lot of them have glossy websites with animations and stock photos of smiling people. it's hard to know in advance what's worth paying attention to. the whole field is dense with acronyms and rather abstruse concepts. which unfortunately means the current audience tends to be limited to tech nerds (c'est moi) and crypto cultists (ce n'est pas moi. merde!).
Briar is a protocol I find personally very appealing. it's security-oriented, designed to be crazy resilient, creating a mesh network through whatever protocols are available. you use it for E2E-encrypted messaging, but also you can use it for threaded discussions and blogs. right now it's only available for phones but they're working on a desktop version. the primary use case seems to be like "you're at a protest and the gov shuts off the internet", but it would be a very sexy place to put your blog. that said, I expect it would not be very fast at all.
the major encryptable, decentralised Discord/IRC alternative is Matrix. I broadly like the look of it, but we have the same problem of inertia getting people to switch from Discord, and there's still some jank I encountered when I tried it.
there's a lot of cryptocurrency in this whole area. (not surprising since the underlying tech of crypto is also hash-based, and there's ideological overlap between crypto and torrent people, because 'decentralised').
notably, there's a companion project to IPFS, a complicated scheme called FileCoin which is designed to encourage people to host data for a certain period in return for FileCoin tokens. you get FileCoins for consistently holding onto the data, and you lose a stake of FileCoins if you delete it prematurely. these FileCoins can then be used mainly to pay other people to host data for you: you pay FileCoins to a host, and pay them again to fetch your data(!). or you can trade them for other cryptocurrencies.
I'll acknowledge it doesn't seem as intrinsically environmentally corrosive as proof-of-work crypto, or even as simply 'the rich get richer' as proof-of-stake crypto. it's not filling up HDDs with random crap either. though it does sound like it requires quite a bit of CPU work to be done in all the hashing for the 'sealing' process.
I'm still not entirely convinced of the benefit this scheme brings. crypto stuff has a tendency to go belly-up very abruptly when speculative bubbles pop, so I wouldn't be super excited to rely on FileCoin for archiving some valuable bit of data. of course any offsite backup carries risk, e.g. Dropbox could go bankrupt one day. but I'm way less convinced of the benefits of something like FileCoin than IPFS. I guess it remains to be seen if this takes off.
25 notes · View notes
cpoetter · 5 months
Text
We're really only beginning to see what a tool like IPFS is capable of. If public repositories of data like Wikipedia and Internet Archive use IPFS they will become uncensorable. And that could in-turn have major effects on global access to knowledge, journalism, and free speech.
0 notes
mintcad · 7 months
Text
Have Your Content Get Stolen Through Lazy Minting NFTs
Tumblr media
Are you a passionate Computer aided designer, digital artist, or a content creator? Every piece you create, consists of your time, sweat and wisdom. However, a nightmare for any artist or designer is to witness their intellectual property succumb to theft or forgery. Non-fungible tokens(NFTs) emerge as a promising solution for designers to register and authenticate their creations on the blockchain and showcase it to the world, yet there is a dark side to the process of minting NFTs.
Bots and scammers have found ways to steal original artworks and create NFTs without the creator's knowledge. This surge in spam, theft and other malicious activities gained momentum with the introduction of the lazy minting feature in 2021. Before you NFTs are even minted on the blockchain they’ve already been copied. 
Here’s all you need to know about lazy minting NFTs and how your content is at the risk due to the feature. We also share tips on how you can safeguard your content from being stolen by minting 3D printable CAD files on Mintcad’s NFT platform. 
Why Do You Need NFTs for Intellectual Property? 
Firstly, let’s understand what an NFT is. In simple terms, NFTs or Non-Fungible Tokens, indicate a unique digital identifier attached to a content file whether it’s a 3D printable CAD file or other forms of digital content. It represents the authenticity and the genuine ownership of the underlying art. They allow digital property to form digital assets by registering their ownership on the blockchain. The process of converting a digital file into a non-fungible digital asset by assigning it a unique token on the blockchain is known as minting. 
The unique feature about NFTs is their non-fungibility ie. you cannot exchange two NFTs for a single NFT as you can with fiat currency. These are non-interchangeable and irreplaceable. You can transfer the ownership if you sell your NFT or even rent it out to users for single use through custom smart contracts.
The digital asset’s metadata and underlying file is stored on a decentralized database such as IPFS which makes it nearly impossible to edit or modify the record unless the owner transfers or burns (deletes) it. No one can steal their work and claim it to be theirs ensuring CAD security with NFTs.
What is Lazy Minting of NFTs? 
If you have read Mintcad’s article on how to mint your first NFT, you have a fair idea about minting NFTs. However, minting NFTs is a pricey procedure as creators must pay an upfront gas fee to mint their NFT on the blockchain. This creates an entry barrier for most of the creators who do not want to commit a good sum of money and risk before testing the waters. 
Lazy minting or gasless minting emerged as a solution to this. Gasless minting does not mean you can mint NFTs without a gas fee. It simply implies that you assign a placeholder for your NFT to be minted later. Your NFT will not appear on the blockchain unless it is minted nor does its metadata and underlying file get stored on the IPFS.
Nevertheless, your NFT gets listed on the marketplace, but when a buyer places an order to buy the NFT, the NFT gets minted on the blockchain. Thus, the buyer bears the minting charges or the gas fees along with the cost of NFT. 
How Lazy Minting poses a threat to digital content creators? 
Lazy minting makes entering the NFT market a breeze for anyone who wants to list and sell their NFTs. It removes initial expenses allowing anyone to create NFTs for free, but if you haven’t minted your design yet, anyone can download the file from centralized databases and mint it before you can, making your NFT a copy.
This not only benefits the artists and designers but also the scammers who are successfully pulling off NFT scams. 
Content theft is one of the major drawbacks of lazy minting NFTs. As the initial minting is free of cost, scammers steal content creators’ works and create an NFT for it, listing it on the marketplaces for sale. Sometimes the original creator does not even know that their work is being stolen and sold without their knowledge. 
One of the top NFT marketplaces, OpenSea has even admitted, “Over 80% of the NFTs created with our "free minting tool" are 'plagiarized works, fake collections, and spam'.”
Lazy minting which was assumed to be a boon for the designers has allowed art thieves to exploit the entire system with virtually zero risk.
Real-world Examples of Lazy Minting NFT leading to content theft
Aja Trier, an artist faced a new and overwhelming challenge when she discovered that her popular Vincent Van Gogh-style paintings had been transformed into almost 86,000 NFTs (Non-Fungible Tokens). These digital tokens were being sold on OpenSea, without Aja's knowledge. 
The issue arose because these NFTs were created using a method known as "lazy minting" on OpenSea. Lazy minting allows users to list NFTs for sale without completing the transaction on the blockchain until a buyer comes along. This feature became a problem because scammers exploited it to list numerous stolen items in the hope of finding buyers.
The method involved bots scraping art from online galleries or using keyword searches on Google Images to create collections with automatically generated descriptions. OpenSea, due to its popularity and less rigorous vetting system, became a hotspot for such activities.
Solution to Content Theft Caused by Lazy Minting
Though lazy minting looks lucrative on the surface allowing you to easily enter the NFT market it is putting your CAD assets at the risk of theft. At Mintcad we do not support lazy minting, we want to protect your design IPs with NFTs and believe the original creators should remain safe in this novel marketplace. 
With lazy minting, the metadata of your CAD file gets stored only on a database like AWS, however when you mint your NFTs on Mintcad, we store your data on the decentralized database like IPFS. This ensures that the ownership of your NFT gets secured on the blockchain.
Along with this we are also working on an AI-based geometric recognition algorithm that recognizes the NFTs already minted and rejects the request on re-minting. This ensures that your CAD assets do not get stolen or forged. 
We are working towards algorithm updates that restrict minting NFTs for content that violate any copyrights. We are taking every step to secure the digital assets of our content creators and enable them to leverage the benefits of NFTs. 
If you are looking to secure the ownership of your 3D printable CAD files, mint NFTs for your CAD files on Mintcad, get them listed for sale or allow 3D printing enthusiast to print your file for a small fee that you as a creator earn.
NFT Minting on Mintcad
To mint your NFT, you must choose an appropriate NFT marketplace, Mintcad serves as a no-code solution to mint NFTs via smart specialized contracts.  
Mintcad is one of the best NFT platforms to mint your 3D printable CAD files, list them for sale or allow your designs to be printed. You can learn more about how to mint your first 3d printable NFT on Mintcad.
This content is originally published on Mintcad's Website: Have Your Content Get Stolen Through Lazy Minting NFTs
0 notes
neills-car-blog · 10 months
Text
0 notes
guillaumelauzier · 1 year
Text
Demystifying the Technicalities of Rendering Tokenized Generative Art
Tumblr media
Art and technology have been gradually intertwining over the years, culminating in the emergence of tokenized generative art. It’s a fascinating convergence of creativity and computer science, involving the use of algorithms for art creation and blockchain technology for tokenization and provenance tracking. This article aims to break down the complex technicalities behind rendering tokenized generative art.
1. An Overview of Tokenized Generative Art
Tokenized generative art involves the creation of unique digital artworks through an algorithm or code, and then representing these pieces as distinct, non-fungible tokens (NFTs) on a blockchain, most commonly Ethereum. This novel approach allows artists to create a multitude of unique pieces, each represented by a distinct token with provable ownership and authenticity.
2. The Art of Generation: Programming and Libraries
Generative art is created through algorithms, essentially pieces of code that generate unique outputs based on certain parameters and randomness. Artists often use programming languages like Python or JavaScript and employ various libraries such as p5.js, Three.js, or TensorFlow.js to create visually diverse and intriguing pieces of artwork. The element of randomness and the use of mathematical constructs often leads to aesthetically pleasing patterns and structures. The algorithm might incorporate randomness in the form of color, shape, positioning, or a host of other parameters, all while keeping within certain aesthetic bounds defined by the artist.
3. Tokenization: Solidity and Smart Contracts
Once the artwork has been generated, each piece is tokenized, typically on the Ethereum blockchain. Tokenization involves creating a unique digital token for each artwork, which is carried out through the deployment of a smart contract. Solidity, Ethereum's programming language, is used to write this smart contract. These contracts usually adhere to the ERC-721 standard for NFTs, which defines a minimal interface allowing for the management, ownership, and transfer of unique tokens. The contract includes functions for minting (creating) new tokens, and each minted token is associated with a specific piece of artwork.
4. IPFS and Metadata
The connection between the token and its corresponding artwork is established through the token's metadata. This metadata typically includes details about the art piece and a URL pointing to the artwork file. To ensure the persistence of the artwork over time, the art files are usually stored on the InterPlanetary File System (IPFS), a decentralized storage system. The IPFS hash of the file is then stored in the token's metadata, creating an immutable link between the token and the artwork.
5. Rendering Tokenized Art: Interacting with the Blockchain
With the tokenization complete, the next step is to render or display the tokenized art. This involves developing a frontend application that can interact with the blockchain, read the metadata associated with each token, and display the artwork. Web3.js or Ethers.js are commonly used libraries to facilitate interaction with the Ethereum blockchain. These allow the application to connect to a user's Ethereum wallet, query the blockchain for the tokens owned by the user, and retrieve the token's metadata. This metadata is then used to fetch and display the actual artwork from its storage location.
6. The Marketplace: Buying, Selling, and Trading
Once the artwork has been tokenized and rendered, it can be bought, sold, or traded on any marketplace that supports the ERC-721 standard, such as OpenSea or Rarible. Each transaction is recorded on the Ethereum blockchain, providing a transparent and immutable history of ownership.
7. Generating New Tokens for Each Art Variant
One of the fascinating aspects of generative art lies in its ability to generate countless unique variants of a base artwork. Each variant is typically defined by certain variables, which might include aspects like color, shape, size, pattern, or any other parameter defined in the generation algorithm. This ability to create multiple unique pieces lends itself naturally to the concept of tokenization, where each distinct piece of artwork can be represented by a unique token. In the context of Ethereum and the ERC-721 standard, each unique piece of generative art (variant) can be associated with a distinct token. This involves extending the minting function within the smart contract. Here's a simple example using Solidity: pragma solidity ^0.5.0; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; contract MyNFT is ERC721 { uint256 public tokenCounter = 0; constructor() ERC721("MyNFT", "MNFT") public {} function mintArt(address to) public { uint256 newArtTokenId = tokenCounter; _mint(to, newArtTokenId); tokenCounter++; } } In the example above, tokenCounter is used to ensure each new piece of art gets a unique token ID. The mintArt function creates a new token with a unique ID and assigns it to the given address. This function can be called each time a new variant of the artwork is created, thus tokenizing each unique piece of generative art. It's important to note that the metadata for each token would also need to be unique to represent the unique artwork it is associated with. The metadata could include details about the variables that define the variant, along with the URL of the artwork file. Just as with the base artwork, each new variant could be stored on IPFS or another decentralized file storage system, and the URL of this stored file would be included in the metadata of the associated token. This allows each tokenized variant to be rendered individually, showcasing the unique features of each piece. In this way, not only can the original, base artwork be tokenized and rendered, but every single unique variant generated by the algorithm can be given its own representation on the blockchain, complete with its own provenance and ownership record. This significantly extends the potential for interaction, trading, and appreciation of the unique aspects of each variant within the broader generative art piece. In conclusion, while the technicalities of rendering tokenized generative art may initially appear complex, they essentially boil down to three main components: the generation of the art, the tokenization of the art, and the rendering of the tokenized art. By leveraging coding, blockchain, and decentralized storage, artists and developers are able to create, tokenize, and display unique pieces of digital artwork, pushing the boundaries of what's possible at the intersection of art and technology. Read the full article
0 notes
bitrss-news · 1 year
Text
Tumblr media
Start to share on #IPFS in no time! Take your #MyIPFS #Script with 30% off! #Coupon #Code: MkMeHappy
1 note · View note
ecoeconomicepochs · 2 years
Link
IPFS Interplanetary File System Web3 web page first effort to walk the walk. I am learning Web3 conventions for distributed web pages...Specific browsers (Brave / Chrome) with specific extensions (Brave, Metamask...) are needed to view:  #DAO #Web3 #IPFS Web3 page: https://ecoeconomicepochs.dao/
0 notes
bho-network · 2 years
Text
IPFS là gì? Chi tiết về tiềm năng của IPFS trong Blockchain
IPFS là gì? Cùng BHO Network tìm hiểu về kiến thức cơ bản và tiềm năng của IPFS đến với Blockchain ngay tại đây! Link: https://bho.network/vi/ipfs-la-gi
0 notes
jacob-cs · 2 years
Text
ipfs 에서 기존 폴더에 파일추가하는 방법
original source : https://stackoverflow.com/a/66586844
참고사항 :  DNSLINK에 대하여 https://www.dnslink.io/#redirects-and-delegation
avubble 개발시 아래 내용을 이용해서 개발 하려고 했지만 web3 storage, pinata에서 지원하지 않기 때문에 사용할수 없었다
I'm a bit late to answer this, but I found the 2 existing answers a bit unclear.
Tl;Dr; Just commands and minimal info
If you want a thorough detailed explanation, scroll down to the section starting with The 2 keys to mutability.
If you just need the commands you should run, and barebones usage info so you know how to actually adjust the command for your use case, then read this TL;DR; section.
Use IPNS / DNSLink for references to IPFS objects that can be updated
IPNS
Create a key, back it up if using in production, then use ipfs name publish to change the object that your key currently points to. Access your key by prefixing /ipns/ to commands / URLs instead of /ipfs/.
ipfs key gen test # backup your key if used in production ipfs key export -o /home/somewhere/safe/test.key test umount /ipns ipfs name publish -k test QmWRsWoZjiandZUXLyczXSoWi84hXNHvBQ49BiQx9hPdjs #    Published to k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0: /ipfs/QmWRsWoZjiandZUXLyczXSoWi84hXNHvBQ49BiQx9hPdjs ipfs ls /ipns/k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0 # Qme85tx5Wnsjc5pZZs1JGogBNUVM2WThC18ERh6t2YFJSK 37 lorem.txt ipfs name publish -k test QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8 #    Published to k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0: /ipfs/QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8 # Since it's not a folder this time, we use 'ipfs cat' to read # it to the console, since we know the file was plain text. ipfs cat /ipns/k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0 # foo bar foo bar foo foo foo # bar foo foo bar bar foo bar
DNSLink
Set a TXT record on _dnslink above the (sub)domain you want to use as an IPNS reference. Set the value to dnslink=/ipns/<id> or dnslink=/ipfs/<id> depending on whether you're pointing it at an IPFS object or an IPNS address, and replace <id> with the object ID / IPNS address you want to point it to.
         Domain:     privex.io (Subdomain) Name:     _dnslink.test     Record Type:     TXT           Value:     dnslink=/ipns/k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0    TTL (expiry):     120 (seconds)
Just like normal IPNS, you should now be able to query it with IPFS CLI tools, or IPFS gateways by using /ipns/<your_domain> instead of /ipfs/<object_id>.
If we now cat /ipns/test.privex.io we can see it's working properly, pointing to the foo bar text file (no wrapped folder).
ipfs@privex ~ $ ipfs cat /ipns/test.privex.io foo bar foo bar foo foo foo bar foo foo bar bar foo bar
Add an existing IPFS object ID to another IPFS object (wrapped folder)
Using the following command, you can add an individual IPFS file, or an entire wrapped folder to an existing object using their respective object IDs, and the command will output a new object ID, referencing a new object that contains both the original folder data, and the new data that you wanted to add.
The syntax for the command is: ipfs object patch add-link [object-to-add-to] [name-of-newly-added-file-or-folder] [object-to-inject]
ipfs@privex:~$ ipfs object patch add-link QmXCfnzXHThHwaTvSSAKeErxK48XkyVoL6ZNEhkpKmZyW3 hello/foo.txt QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8 QmaWoYZnSXnKqzskrBwtmZPE74qKe4AF5YfwaY83nzeCCL
The 2 keys to mutability
1. Having an IPFS object ID that stays the same despite the content changing
Unfortunately, IPFS object IDs (the ones starting with Q) are immutable, meaning their contents cannot be altered in the future without getting a new ID, due to the fact an object ID is effectively a hash (usually a form of SHA256).
HOWEVER, both IPNS and DNSLink have a solution for this.
IPNS is "Interplantary Name System", which is strongly integrated into IPFS. It allows you to generate an address (public key) and a private key, similar to how Bitcoin and many other cryptocurrencies work. Using your private key, you can point your IPNS
First, you'll want to generate a key (note: you'll need a key per individual IPNS address you want)
ipfs@privex:~$ ipfs key gen test k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0
If you plan to use your IPNS address for something other than testing, you should export the private key and keep a copy of it somewhere safe. Note that the private key is a binary file, so if you want to store it somewhere that expects plain text, you can convert it into base64 like so: base64 test.key
ipfs key export -o /home/somewhere/safe/test.key test
Next we'll publish a random IPFS folder to the IPNS address, which contains one file (lorem.txt) with a few lines of lorem ipsum text. If you use the FUSE /ipns folder, you may need to unmount it before you're able to publish via IPNS:
ipfs@privex:~$ umount /ipns ipfs@privex:~$ ipfs name publish -k test QmWRsWoZjiandZUXLyczXSoWi84hXNHvBQ49BiQx9hPdjs    Published to k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0: /ipfs/QmWRsWoZjiandZUXLyczXSoWi84hXNHvBQ49BiQx9hPdjs ipfs@privex:~$ ipfs ls /ipns/k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0 Qme85tx5Wnsjc5pZZs1JGogBNUVM2WThC18ERh6t2YFJSK 37 lorem.txt
That's just one example though - to prove that the IPNS address can actually be updated with different content, in this next example, I'll publish an individual text file directly to the IPNS address (not a wrapped folder).
# Publish the IPFS object 'QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8' # to our existing named key 'test' ipfs@privex:~$ ipfs name publish -k test QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8 # Since it's not a folder this time, 'ipfs ls' won't return anything. # So instead, we use 'ipfs cat' to read it to the console, since we # know the file was plain text. ipfs@privex:~$ ipfs cat /ipns/k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0 foo bar foo bar foo foo foo bar foo foo bar bar foo bar
DNSLink
DNSLink is a part of IPNS that allows for human readable IPNS addresses through the standard domain system (e.g. example.com).
Since the IPNS section was rather long, I'll keep this one short and sweet. If you want to know more about DNSLink, please visit dnslink.io.
First, either you already have a domain to use, or you acquire a domain from a registrar such as Namecheap.
Go to your domain record management panel - if you use Cloudflare, then they are your domain management panel. Add a TXT record for _dnslink.yourdomain.com or if you want to use a subdomain, _dnslink.mysub.yourdomain.com (on most registrars, you only enter the part before the domain you're managing, i.e. _dnslink or _dnslink.mysub).
In the value box, enter dnslink= followed by either /ipfs/ or /ipns/ depending on whether you want to use an IPFS object ID or an IPNS name address, then enter your object ID / IPNS name to the end.
For example, if you were pointing your domain to the IPNS address in the earlier example, you'd enter:
dnslink=/ipns/k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0
Or if you wanted to point it to the example folder containing lorem.txt with a few lines of lorem ipsum, it would be
dnslink=/ipfs/QmWRsWoZjiandZUXLyczXSoWi84hXNHvBQ49BiQx9hPdjs
For example purposes, here's a summary of how I setup test.privex.io
         Domain:     privex.io (Subdomain) Name:     _dnslink.test     Record Type:     TXT           Value:     dnslink=/ipns/k51qzi5uqu5dkqxbxeulacqmz5ekmopr3nsh9zmgve1dji0dccdy86uqyhq1m0    TTL (expiry):     120 (seconds) (note: most people are fine with "auto" TTL, or the somewhat standard 600 TTL. If you intend to change the DNSLink value regularly, or you're experimenting and likely updating it constantly, you may want a low TTL of 60 or even 30)
After setting it up, with the IPNS address still pointing at the raw foo bar text data, I used ipfs cat to read the data that the domain pointed to:
ipfs@privex:~$ ipfs cat /ipns/test.privex.io foo bar foo bar foo foo foo bar foo foo bar bar foo bar
2. Add existing IPFS objects to your object, without having to download/organise the object being added.
First we create the IPFS object - a wrapped folder containing hello/lorem.txt - which has the object ID QmXCfnzXHThHwaTvSSAKeErxK48XkyVoL6ZNEhkpKmZyW3
ipfs@privex:~$ mkdir hello ipfs@privex:~$ echo -e "lorem ipsum dolor\nlorem ipsum dolor\n" > hello/lorem.txt ipfs@privex:~$ ipfs add -p -r -w hello added Qme85tx5Wnsjc5pZZs1JGogBNUVM2WThC18ERh6t2YFJSK hello/lorem.txt added QmWRsWoZjiandZUXLyczXSoWi84hXNHvBQ49BiQx9hPdjs hello added QmXCfnzXHThHwaTvSSAKeErxK48XkyVoL6ZNEhkpKmZyW3 37 B / 37 B [=======================================================================] 100.00% ipfs@privex:~$ ipfs ls QmXCfnzXHThHwaTvSSAKeErxK48XkyVoL6ZNEhkpKmZyW3 QmWRsWoZjiandZUXLyczXSoWi84hXNHvBQ49BiQx9hPdjs - hello/ ipfs@privex:~$ ipfs ls QmXCfnzXHThHwaTvSSAKeErxK48XkyVoL6ZNEhkpKmZyW3/hello Qme85tx5Wnsjc5pZZs1JGogBNUVM2WThC18ERh6t2YFJSK 37 lorem.txt
Next, for the sake of creating an example external object ID that isn't part of the original wrapped folder, I created foo.txt containg a couple of lines of random foo bar text, and uploaded it to IPFS on it's own. It's object ID is QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8
ipfs@privex:~$ echo -e "foo bar foo bar foo foo foo\nbar foo foo bar bar foo bar\n" > foo.txt ipfs@privex:~$ ipfs add foo.txt added QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8 foo.txt 57 B / 57 B [======================================================================] 100.00%
Finally, we use ipfs object patch add-link to add the foo.txt object (QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8) I created before, inside of the hello/ folder of the original wrapped folder I created (QmXCfnzXHThHwaTvSSAKeErxK48XkyVoL6ZNEhkpKmZyW3).
The syntax for the command is: ipfs object patch add-link [object-to-add-to] [name-of-newly-added-file-or-folder] [object-to-inject]
ipfs@privex:~$ ipfs object patch add-link QmXCfnzXHThHwaTvSSAKeErxK48XkyVoL6ZNEhkpKmZyW3 hello/foo.txt QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8 QmaWoYZnSXnKqzskrBwtmZPE74qKe4AF5YfwaY83nzeCCL
It outputs a new object ID QmaWoYZnSXnKqzskrBwtmZPE74qKe4AF5YfwaY83nzeCCL which is the ID of the newly created object that contains both hello/lorem.txt from the original, and hello/foo.txt which was injected later on.
NOTE: This command ALSO works when adding entire wrapped folders to another wrapped folder, however, be careful to avoid double nesting. e.g. you have Qxxxx/hello/world and Qyyyy/lorem/ipsum - if you add Qyyyy to Qxxxx specifying the name lorem - it will be added as Qzzzz/lorem/lorem/ipsum
If we now do ipfs ls on the new object ID, we can see that the hello/ sub-folder contains BOTH foo.txt and lorem.txt - confirming that foo.txt was successfully injected into the duplicate, without needing to download both the original and foo.txt - then organising them properly in a folder before uploading.
ipfs@privex:~$ ipfs ls QmaWoYZnSXnKqzskrBwtmZPE74qKe4AF5YfwaY83nzeCCL QmbU3BwdMarL8n6KCzVdYqMh6HEjCv6pLJQZhoVGWZ5bWW - hello/ ipfs@privex:~$ ipfs ls QmaWoYZnSXnKqzskrBwtmZPE74qKe4AF5YfwaY83nzeCCL/hello QmaDDLFL3fM4sQkQfV82LdNqtNnyaeAmgC46Qc7FDQdkq8 57 foo.txt Qme85tx5Wnsjc5pZZs1JGogBNUVM2WThC18ERh6t2YFJSK 37 lorem.txt
Summary
As explained in the first section, IPFS object IDs are immutable, thus while it's possible to merge existing objects on IPFS, it still results in a new object ID.
BUT, by using IPNS key addresses and/or DNSLink, you can have a mutable (editable) reference that points to any IPFS object, and can be updated to point to a new object ID on-demand, e.g. whenever you update the contents of an existing object, or if you decide you simply want your IPNS key/domain to point at something completely different, you're free to do so :)
0 notes
orbitbrain · 2 years
Text
Attackers Using IPFS for Distributed, Bulletproof Malware Hosting
Attackers Using IPFS for Distributed, Bulletproof Malware Hosting
Home › Malware Attackers Using IPFS for Distributed, Bulletproof Malware Hosting By Kevin Townsend on November 09, 2022 Tweet The InterPlanetary File System (IPFS), considered one of the building blocks of web3, is increasingly being used to provide hidden bulletproof hosting for malware. “Multiple malware families are currently being hosted within IPFS and retrieved during the initial stages of…
View On WordPress
0 notes
santiagoitzcoatl · 10 months
Text
Tumblr media
SSQ-35-RKB-D Animated SVG
spiral #svg
token: https://objkt.com/asset/KT1Hybjvg5uefjdGNNJwhd5miFwuZahBxJYg/82
svg on ipfs: https://ipfs.io/ipfs/QmQQHZTs6poQTWGJRwHaswVfC8rbVoqzeiVMTrRPEihEq5
3 notes · View notes
cpoetter · 1 year
Photo
Tumblr media
colour codes and font families for each NFT on Zora
0 notes
extraextragto · 2 years
Text
El navegador web BRAVE integra Unstoppable Domains para dominios Web3
El navegador web #BRAVE integra #Unstoppable Domains para dominios #Web3
Brave anunció en su sitio web oficial, la integración de Unstoppable Domains de forma nativa en su navegador, con lo que permitirá la integración de más de 2 millones de dominios Web3 como los “.nft”, “.wallet”, “.bitcoin”, “.blockchain” o “.dao”. De esta forma, Brave facilitará la creación de sitios web descentralizados a todos aquellos usuarios que desean una alternativa a la Web2. En los…
Tumblr media
View On WordPress
0 notes
canmom · 11 months
Text
Hypothetical Decentralised Social Media Protocol Stack
if we were to dream up the Next Social Media from first principles we face three problems. one is scaling hosting, the second is discovery/aggregation, the third is moderation.
hosting
hosting for millions of users is very very expensive. you have to have a network of datacentres around the world and mechanisms to sync the data between them. you probably use something like AWS, and they will charge you an eye-watering amount of money for it. since it's so expensive, there's no way to break even except by either charging users to access your service (which people generally hate to do) or selling ads, the ability to intrude on their attention to the highest bidder (which people also hate, and go out of their way to filter out). unless you have a lot of money to burn, this is a major barrier.
the traditional internet hosts everything on different servers, and you use addresses that point you to that server. the problem with this is that it responds poorly to sudden spikes in attention. if you self-host your blog, you can get DDOSed entirely by accident. you can use a service like cloudflare to protect you but that's $$$. you can host a blog on a service like wordpress, or a static site on a service like Github Pages or Neocities, often for free, but that broadly limits interaction to people leaving comments on your blog and doesn't have the off-the-cuff passing-thought sort of interaction that social media does.
the middle ground is forums, which used to be the primary form of social interaction before social media eclipsed them, typically running on one or a few servers with a database + frontend. these are viable enough, often they can be run with fairly minimal ads or by user subscriptions (the SomethingAwful model), but they can't scale indefinitely, and each one is a separate bubble. mastodon is a semi-return to this model, with the addition of a means to use your account on one bubble to interact with another ('federation').
the issue with everything so far is that it's an all-eggs-in-one-basket approach. you depend on the forum, instance, or service paying its bills to stay up. if it goes down, it's just gone. and database-backend models often interact poorly with the internet archive's scraping, so huge chunks won't be preserved.
scaling hosting could theoretically be solved by a model like torrents or IPFS, in which every user becomes a 'server' for all the posts they download, and you look up files using hashes of the content. if a post gets popular, it also gets better seeded! an issue with that design is archival: there is no guarantee that stuff will stay on the network, so if nobody is downloading a post, it is likely to get flushed out by newer stuff. it's like link rot, but it happens automatically.
IPFS solves this by 'pinning': you order an IPFS node (e.g. your server) not to flush a certain file so it will always be available from at least one source. they've sadly mixed this up in cryptocurrency, with 'pinning services' which will take payment in crypto to pin your data. my distaste for a technology designed around red queen races aside, I don't know how pinning costs compare to regular hosting costs.
theoretically you could build a social network on a backbone of content-based addressing. it would come with some drawbacks (posts would be immutable, unless you use some indirection to a traditional address-based hosting) but i think you could make it work (a mix of location-based addressing for low-bandwidth stuff like text, and content-based addressing for inline media). in fact, IPFS has the ability to mix in a bit of address-based lookup into its content-based approach, used for hosting blogs and the like.
as for videos - well, BitTorrent is great for distributing video files. though I don't know how well that scales to something like Youtube. you'd need a lot of hard drive space to handle the amount of Youtube that people typically watch and continue seeding it.
aggregation/discovery
the next problem is aggregation/discovery. social media sites approach this problem in various ways. early social media sites like LiveJournal had a somewhat newsgroup-like approach, you'd join a 'community' and people would post stuff to that community. this got replaced by the subscription model of sites like Twitter and Tumblr, where every user is simultaneously an author and a curator, and you subscribe to someone to see what posts they want to share.
this in turn got replaced by neural network-driven algorithms which attempt to guess what you'll want to see and show you stuff that's popular with whatever it thinks your demographic is. that's gotta go, or at least not be an intrinsic part of the social network anymore.
it would be easy enough to replicate the 'subscribe to see someone's recommended stuff' model, you just need a protocol for pointing people at stuff. (getting analytics such as like/reblog counts would be more difficult!) it would probably look similar to RSS feeds: you upload a list of suitably formatted data, and programs which speak that protocol can download it.
the problem of discovery - ways to find strangers who are interested in the same stuff you are - is more tricky. if we're trying to design this as a fully decentralised, censorship-resistant network, we face the spam problem. any means you use to broadcast 'hi, i exist and i like to talk about this thing, come interact with me' can be subverted by spammers. either you restrict yourself entirely to spreading across a network of curated recommendations, or you have to have moderation.
moderation
moderation is one of the hardest problems of social networks as they currently exist. it's both a problem of spam (the posts that users want to see getting swamped by porn bots or whatever) and legality (they're obliged to remove child porn, beheading videos and the like). the usual solution is a combination of AI shit - does the robot think this looks like a naked person - and outsourcing it to poorly paid workers in (typically) African countries, whose job is to look at reports of the most traumatic shit humans can come up with all day and confirm whether it's bad or not.
for our purposes, the hypothetical decentralised network is a protocol to help computers find stuff, not a platform. we can't control how people use it, and if we're not hosting any of the bad shit, it's not on us. but spam moderation is a problem any time that people can insert content you did not request into your feed.
possibly this is where you could have something like Mastodon instances, with their own moderation rules, but crucially, which don't host the content they aggregate. so instead of having 'an account on an instance', you have a stable address on the network, and you submit it to various directories so people can find you. by keeping each one limited in scale, it makes moderation more feasible. this is basically Reddit's model: you have topic-based hubs which people can subscribe to, and submit stuff to.
the other moderation issue is that there is no mechanism in this design to protect from mass harassment. if someone put you on the K*w*f*rms List of Degenerate Trannies To Suicidebait, there'd be fuck all you can do except refuse to receive contact from strangers. though... that's kind of already true of the internet as it stands. nobody has solved this problem.
to sum up
primarily static sites 'hosted' partly or fully on IPFS and BitTorrent
a protocol for sharing content you want to promote, similar to RSS, that you can aggregate into a 'feed'
directories you can submit posts to which handle their own moderation
no ads, nobody makes money off this
honestly, the biggest problem with all this is mostly just... getting it going in the first place. because let's be real, who but tech nerds is going to use a system that requires you to understand fuckin IPFS? until it's already up and running, this idea's got about as much hope as getting people to sign each others' GPG keys. it would have to have the sharp edges sanded down, so it's as easy to get on the Hypothetical Decentralised Social Network Protocol Stack as it is to register an account on tumblr.
but running over it like this... I don't think it's actually impossible in principle. a lot of the technical hurdles have already been solved. and that's what I want the Next Place to look like.
246 notes · View notes
coochiequeens · 11 months
Text
April Hutchinson may not be able to compete for two years for speaking the truth but she won my heart and respect.
By Genevieve Gluck. November 8, 2023
A female competitive powerlifter for Team Canada who spoke out after a trans-identified male athlete set a women’s national record at a championship in Manitoba has been informed that she is facing a two-year suspension from her sport as a result. April Hutchinson shared the news to X (formerly Twitter), where she has received an outpouring of support after she slammed the situation as a “horror show.”
“I now face a 2-year ban by the [Canadian Powerlifting Union] CPU for speaking publicly about the unfairness of biological males being allowed to taunt female competitors & loot their winnings,” Hutchinson wrote.
“Apparently, I have failed in my gender-role duties as ‘supporting actress’ in the horror show that is my sport right now. Naturally, the CPU deemed MY written (private) complaint of the male bullying to be ‘frivolous and vexatious.'”
Tumblr media
Alongside her statement, Hutchinson shared images of the notice she had received, which reported that a discipline committee had convened on October 23 and had “determined that there is sufficient evidence for Major Infraction as a result of repeating offences, including prior warning.”
“Based on the information provided, the Discipline Panel is recommending that [April Hutchinson] have her membership to the CPU suspended for 2 years. We strongly feel this is a case of a repeated offence, and should be treated as such,” the notice read.
Hutchinson was reported to the CPU on August 23 by Anne Andres, a trans-identified male athlete who set a women’s national record at a championship in Brandon, Manitoba, on August 13. Hutchinson had publicly condemned his participation in the women’s category, and appeared on Piers Morgan Uncensored just days after the championship competition.
“I’ve been a powerlifter with the Canadian Powerlifting Union for about four years now. Over the last year, I have been fighting my federation to ban trans women — also known as men — from competing with women in powerlifting,” Hutchinson told host Rosanna Lockwood.
“They have ignored my pleas, as well as many other women who don’t agree with it. They’ve actually threatened to suspend me for speaking up about the matter,” she added. “The threats keep coming, and disciplinary action for speaking up has been ongoing over the last year.”
“The whole thing is disgusting. It’s disgraceful. It’s disheartening,” Hutchinson remarked. “I’ve been threatened with suspension. Two weeks ago, I received a letter from my Federation, stating that I cannot call Anne a biological male.” In response to news of Hutchinson’s potential ban, The Daily Mail reached out to Andres for comment. He responded by telling the journalist who contacted him that “the blood of LGBT people” was on her hands, and added, “Get straight f*cked.”
Tumblr media
Andres, 40, currently holds multiple records in the female division, including the women’s deadlift and bench press, and has placed first in nine out of the eleven competitions he has participated in over the past four years.
At the Canadian Powerlifting Union’s (CPU) 2023 Western Canadian Championship, Andres participated in the Female Masters Unequipped category, and beat out Michelle Kymanick and SuJan Gil for the first place award — with a total powerlifting score that was over 200kg more than the top-performing female in the same class.
A “total” is the sum of the heaviest weight lifted for the squat, bench press, and deadlift. Andres’ total would have placed him amongst the top-performing male powerlifters in the entire championship had he participated in the men’s category.
Tumblr media
The Western Canadian Championships was held under the umbrella of the Canadian Powerlifting Union (CPU), which announced a gender self-identification policy earlier this year. The policy, which garnered mass backlash from women’s rights advocates, explicitly allowed any males to participate in women’s competitions on the basis of self-declared “gender” alone.
In February, the CPU’s “Trans Inclusion Policy” was released, containing an explicit statement that the CPU supported allowing transgender powerlifters to participate in the sex category of their choosing based on a guidance from the Canadian Centre for Ethics in Sport (CCES).
“Based on this background and available evidence, the Expert Working Group felt that trans athletes should be able to participate in the gender with which they identify, regardless of whether or not they have undergone hormone therapy,” the document reads, deferring to the “inclusivity in sport” guidance from the CCES.
Just prior to the CPU’s announcement of a gender self-identification policy, Andres gained significant notoriety after sharing a video of himself appearing to mock female athletes, asking why female powerlifters were “so bad” at bench press.
Tumblr media
The widespread outcry against males in women’s powerlifting events, prompted by news of Andres’ participation and taunting of female athletes, motivated the International Powerlifting Federation (IPF) to issue a policy change on August 21.
“For a transgender athlete to compete in the sport of powerlifting at any level, he/she must declare before competing that he/she is a transgender athlete. If an athlete fails to declare that he/she is a transgender and competes that violation leads to Disqualification of the result obtained in that Competition with all resulting Consequences, including forfeiture of any medals, points and prizes,” the IPF said in an updated policy document.
Increasing reports of male athletes identifying as female in order to compete in women’s events have attracted significant criticism. As previously reported by Reduxx, a Canadian powerlifting coach self-identified into the women’s category earlier this year and broke the Alberta women’s bench press record. Avi Silverberg was attempting to highlight the unfair advantage males have when competing in women’s athletics, in protest over the CPU’s recently implemented gender self-identification policies.
Not to show my age but the thought of men competing in women’s sports was funny when it was this guy
Tumblr media
Say what you will about the 90's at least we had common sense about this issue
35 notes · View notes
solradguy · 2 years
Note
As one note as the yaoi jokes are it’s hard to deny that sol and ky’s present relationship is pretty much amicably broken up ex bfs/beloathed in-laws/flawed but well intentioned fathers of an unknown but growing number of children
There's definitely underlying homoeroticism to their relationship, but sometimes the fanfiction headcanons need to be set aside to look at what the actual canon is trying to get across, you know? It's easy to boil it all down to "because they're gay for each other" (which I also do sometimes because it's funny lol) but their relationship is so much deeper than that.
I'm not even really a Ky guy, tbh, but I very rarely see people talk about him with the same care they talk about characters with 1/10th the lore he has, and his relationship with Sol is discussed in a serious context even less.
25 notes · View notes