時間:2023-07-31|瀏覽:250
在ETHOnlineHackaton的比賽中,Toshiake Takase和Tsukasa Noguchi的ETHLink使用Chainlink的oracle基礎(chǔ)架構(gòu)和IPFS,使基于Audius區(qū)塊鏈的音樂流媒體平臺上的藝術(shù)家能夠向其粉絲分發(fā)代幣獎勵,而無需支付成百上千筆個人交易的高昂GAS費。
在本文中,Iroiro團隊展示了如何使用Chainlink連接到IPFS,以進行具有成本效益的令牌分發(fā)以及各種其他以太坊基礎(chǔ)設(shè)施用例。
1、介紹 以太坊上的ERC20令牌標準除了可用作貨幣外,還可用作公用事業(yè)令牌。在這種情況下,我們專注于令牌在創(chuàng)作者和粉絲之間進行交流的有效性,并開發(fā)了“Iroiro”使藝術(shù)創(chuàng)作者能夠生成自己的ERC20令牌并將其分發(fā)給粉絲。這種創(chuàng)建者令牌有很多潛在的用例,將這些令牌分發(fā)給粉絲的目的會因創(chuàng)建者而異。有時候,這只是出于表達感激之情,有時是為了訪問專有內(nèi)容或體驗,例如私人聊天頻道,直播或現(xiàn)場表演津貼。潛在的獨家獎勵范圍是藝術(shù)家可以探索的另一個創(chuàng)意空間。
但是,當(dāng)前在以太坊上進行交易的成本為許多交易造成了障礙。發(fā)送令牌的成本很容易超過藝術(shù)家從忠實粉絲身上獲得的任何收益。為了使粉絲獎勵計劃成為ERC20代幣的可擴展用例,我們需要實現(xiàn)一些支持基礎(chǔ)架構(gòu),以使其對于創(chuàng)作者而言是合理的用例。
2、Audius API 在ETHOnlineHackathon,我們決定使用Audius啟用令牌分發(fā)。Audius是一種去中心化的音樂流協(xié)議。由于Audius擁有用戶帳戶并促進了藝術(shù)家與追隨者之間的關(guān)系,因此,我們決定,作為這種關(guān)系的擴展,我們可以建立一個流程,由藝術(shù)家創(chuàng)建令牌,并根據(jù)用戶帳戶將令牌分配給他們的粉絲。Audius提供了一個API,通過該API獲取由Audius開發(fā)的Hedgehog錢包中存儲的帳戶的錢包地址以及關(guān)注者地址。
因此,我們決定實施以下流程: 1)生成創(chuàng)建者令牌的用戶將獲得其Audius帳戶之后的地址列表 2)創(chuàng)建者令牌生成器接收并存儲跟隨者地址信息作為合同上的快照,并將地址設(shè)置為令牌分發(fā)目標 3)每個關(guān)注者都會收到dApp外一個分發(fā)活動的通知,如果他們有資格進行分發(fā),他們可以執(zhí)行聲明功能并接收令牌
3、智能合約和大量數(shù)據(jù) 但是,在這個流程中的實現(xiàn)存在問題,因為有時關(guān)注者的數(shù)量很多,尤其是對于著名藝術(shù)家(例如RAC)而言。追隨者的數(shù)量可以攀升至數(shù)萬或數(shù)十萬,并且隨著Audius之類的創(chuàng)作者平臺的采用,這一數(shù)字可能會增加。
如果我們嘗試在鏈上合同中記錄追隨者的所有地址,這將在GAS費中花費大量的ETH,尤其是在網(wǎng)絡(luò)擁塞時,這將使創(chuàng)建者負擔(dān)交易成本。
因此,我們的實現(xiàn)不是使用合同來寫入關(guān)注者信息,而是使用IPFS將其保存為脫鏈文件。我們使用Chainlink來檢查IPFS中的地址是否作為Audius錢包存在,從而在創(chuàng)建廣告活動時將合同鏈接到大量數(shù)據(jù),而不會消耗大量資源。
4、IPFS外部適配器 1)關(guān)于IPFS IPFS是用于存儲媒體文件的分布式系統(tǒng)。上傳、下載的文件存儲在分布式網(wǎng)絡(luò)上。在Iroiro中,由Audius API獲得的跟隨者地址列表以JSON文件中的字符串?dāng)?shù)組形式存儲在IPFS中,以便可由Chainlink IPFS外部適配器檢索。
2)連接IPFS和Chainlink時出現(xiàn)問題 如果僅在此處使用Chainlink,則在將其與IPFS鏈接時會遇到問題。這是因為Chainlink的內(nèi)置HTTP GET Adapter可以在JSON字符串中的特定路徑處檢索值,但不會檢索并返回整個值數(shù)組。
要保存并存儲在IPFS上的JSON文件包含一個數(shù)組形式的地址列表,如以下示例所示。這意味著,為了讓關(guān)注者檢查自己的地址是否存儲在JSON文件中,必須構(gòu)建一個Chainlink外部適配器來處理在地址數(shù)組中的搜索。
熱點:ipfs 數(shù)據(jù) 智能合約