以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

探討如何構建十億用戶的Web3社交圖譜_INT

Author:

Time:1900/1/1 0:00:00

如何利用區塊鏈和智能合約技術構建出十億用戶的Web3社交圖譜?

隨著埃隆-馬斯克最近接管了Twitter,關于從大型社交網絡遷移到獨立或開放的替代方案的討論已經越來越多,但是所有那些剛開始幻想在加入繁榮的Twitter前居民社區的人,很快就會遇到自J6之后的跨平臺社交媒體大清洗以來,右派一直在努力解決的問題:網絡鎖定是真實的。

你可以對協調問題、偏好級聯、信號和其他游戲理論式的概念進行理論和策略分析–我不否認這些都是理解問題的有用方法–但要理解Twitter和Facebook對我們數億人的強大影響,你真正需要知道的是網絡時代初期的一個簡單啟發式方法

梅特卡夫定律指出,電信網絡的價值與系統的連接用戶數的平方成正比。梅特卡夫定律最初是由GeorgeGilder在1993年以這種形式提出的,并歸功于RobertMetcalfe在以太網方面的工作。大約在1980年,梅特卡夫定律最初不是以用戶為單位,而是以「兼容的通信設備」為單位。只是后來隨著互聯網的全球化,這一定律才延續到了用戶和網絡,因為它的初衷是描述以太網連接。

要讓人們放棄一個大的、密集的網絡圖,而選擇一個小的、稀疏的網絡圖,幾乎是不可能的,唯一的原因是前者有價值,而后者沒有。

不過奇怪的是,web3解決了這個問題。或者至少如果我們使用一些簡單的智能合約,將區塊鏈從一個巨大的用戶表變成一個巨大的社交圖譜,它可以解決這個問題。

理論依據和以往的工作

區塊鏈可以而且確實作為一個巨大的、共享的用戶表發揮作用,它是開放的、公開的,不受任何一個實體控制。正如我在《十億用戶表》中寫的那樣:

公共區塊鏈相當于整個互聯網的一個單一的、大規模的用戶表,下一波分布式應用將建立在它之上。

取而代之的是一個由API連接的分散的用戶數據倉網絡,一個通過開放協議和分散的存儲節點網絡訪問的單一分散的用戶數據存儲。因此,身份托管區塊鏈代表了數據存儲實施層的去中心化,以及數據存儲訪問層的再中心化。

想象一下,LinkedIn、Reddit和Github都將他們的用戶表移植到BitClout。馬上就會發生以下情況:每個Github用戶也是Reddit用戶、LinkedIn用戶和BitClout用戶。同樣,每個Reddit用戶也是Github用戶、LinkedIn用戶和BitClout用戶。我可以繼續說下去,但你會明白這一點。

每個建立在同一虛擬用戶表上的公司都能立即獲得該表上其他每家創業公司的網絡效應。每當一個鏈上公司加入一個新的用戶,那么你的服務也有一個新的用戶。(從某種程度上說。他們可能還沒有積極使用你的服務,但他們實際上在你的服務的潛在用戶)。

先前的那篇文章用Bitclout作為可以支持這種用例的區塊鏈的典型例子。但是,盡管我對DeSo的整個事情感到興奮,但它的結果并不那么好。

這里不適合做Bitclout/DeSo的事后總結,但標出該區塊鏈的一個方面是有意義的,因為它對現在的討論很重要。Bitclout努力將整個社交網絡放在鏈上,每個帖子都被寫在鏈上,作為一個對象,可以累積收入。這很聰明,但任何試圖承載實際內容的區塊鏈都會看到其數據需求隨著用戶和連接的數量而非線性增長。

Bitclout團隊非常熟悉這種無限制的數據增長問題,并花費了大量的實際工程努力來解決這個問題。但事后看來,我實際上認為他們試圖同時做太多的事情。他們應該只專注于社交圖的可移植性問題。

用我之前文章中的數據庫術語來描述,Bitclout試圖把以下所有的表都放在鏈上:

users

user_follows_user

posts

HyperPay MooN:錢包安全性思考維度應當進行深層次探討:11月6日消息,HyperPay 技術總監 MooN在做客《HyperPay焦點》欄目時提及:錢包的安全性考量應當涉及以下幾個方面:一、團隊實力,看創始成員的背景、履歷和口碑,看技術團隊占比是否高;二、安全策略及安全審計,錢包做了哪些安全防護措施,是否進行了冷熱錢包分離,是否通過了業內知名安全團隊的安全審計,最好提供審計報告;三、投資機構,如果有知名的投資機構投資也能間接說明團隊比較靠譜;四、錢包屬性,錢包是中心化錢包還是去中心化錢包,去中心化相對更安全;五、核心資產模塊是否開源;六、資產的公開和透明程度;七、合作伙伴,通過合作伙伴的實力和數量也能間接提現團隊的靠譜程度;八、商業模式或者業務說明,這一項針對一些中心化錢包的理財服務,如果錢包提供了很高的理財收益,但是又沒有說清楚收益是怎么來的,就要特別注意;九、是否有硬件錢包,硬件錢包可以讓資產管理更加安全。[2020/11/6 11:51:36]

user_likes_post

最后兩張表總是出現數據爆炸,在用戶迅速增長的情況下都會變得不容易操作。

因此,我認為更好的方法是采用現有的區塊鏈,它基本上已經是那個第一張表,并在其中添加一個user_follows_user連接表。(我們還可以為其他類型的關系擴展連接,如user_mutes_user,但目前我們還是保持簡單的。)

這個用戶對用戶的連接表也會隨著用戶數量的增加而非線性增長,但增長速度會比較慢,更重要的是,為了表示它所需要的額外數據量將遠遠低于帖子表。

我這樣建議是因為用戶和粉絲關系構成了每個大型社交網絡平臺鎖定的主要來源。如果你的整個Twitter或Facebook的社交圖譜都是開放的,并且可以隨時提供給其他想要托管帖子和其他更多數據密集型的社交網絡體驗的社交平臺,那么這些平臺的鎖定性基本上為零。

鏈上社交圖譜可能是怎樣的

想象一下,我的整個推特圖是在鏈上體現的–包括實際的賬戶和追隨者關系。為了查看該圖中的Twitter帖子,我需要用我的錢包連接到Twitter.com。但是,假設我想跳轉到tribel.com,或gab.com,或其他一些有自己特殊傾向和節制政策的社交平臺–如果他們能從區塊鏈上讀取我的社交圖譜,那么我可以在那里連接我的錢包,看到同樣的連接,并看到他們在這個其他網站上的任何帖子。

這聽起來可能沒那么有吸引力,但考慮到這樣一個事實:如果我在Tribel上關注一個新的人,那么我現在也在Twitter和Gab上關注這個人–以及在其他所有使用相同鏈上圖的用戶和關系的社交平臺上。取消關注和屏蔽的工作方式也一樣–在一個地方做一次,你的圖譜的變化就會立即反映在所有地方。

現在,那些在閱讀時想利用這一點的已經意識到,在一個如上所述的世界中,將不可避免地發生什么:有人會制作一個全能客戶端,讓你通過一個界面從任何或所有這些網絡中閱讀和發布信息。那么,擁有獨立的服務就沒有意義了,他們都會倒閉……或者他們會嗎?

未來事物的預演:電話號碼+聯系人+消息應用程序

我所描述的世界已經以一種原型狀態存在,以競爭性信息協議的形式存在,這些協議都與你的電話號碼相聯系,并從你的聯系人數據庫中填充自己。電話號碼系統是億萬用戶表的原型,而分布式的聯系人應用程序都可以讀寫標準的Vcard格式,構成了建立在該表之上的關系圖。

有許多信息傳遞協議都是借助于這種電話號碼+聯系人的組合,其結果有點像我在這里描述的社交網絡。例如,當你第一次登錄Telegram時,它會掃描你的聯系人,然后你立即在這個新的應用程序中擁有你現有的網絡。

香港金管局官員:將積極配合數字人民幣發展,探討完善跨境人民幣資金流通渠道:香港金管局財經事務及庫務局局長許正宇今日書面答復議員提問時表示,人民銀行數字人民幣的試點目前主要應用范圍為內地的零售支付,而央行亦正在內地一些城市開展數字人民幣試點。如果央行有意就數字人民幣在內地以外地區(包括在香港)的使用作出探討,政府及金管局會積極回應及配合,并會繼續與業界和內地當局探討完善及擴大跨境人民幣資金雙向流通的渠道。他表示,央行數字人民幣若能應用于跨境支付,將可進一步促進香港與內地(包括粵港澳大灣區)互聯互通。政府及金管局會繼續與人行保持聯系,探討合作的可能性。此外,香港金融發展局已籌組一個工作小組,研究香港如何把握數字人民幣發展的機遇。(香港特區政府官網)[2020/10/21]

其結果是,你可以選擇通過Signal、Telegram、WhatsApp、iMessage或傳統短信與相同的電話號碼交換信息–這一切都在于你和你的網絡中的其他人想使用哪種信息協議。

還有一個永恒的循環,就是消息應用的去中心化和再中心化,這從ICQ時代就開始了,在WhatsApp/Signal/Telegram/Facebook/等的時代仍然在發生。你可以找到任何數量的多合一消息客戶端,在一個窗口中支持許多這些平臺。

這些信息應用都沒有受到損害,因為它們都從同一個開放的電話號碼系統和可互操作的聯系人應用和服務生態系統中獲取身份–它們都共存并帶來不同的東西,而且我們中的許多人在它們之間切換,與我們聯系人中具有不同需求和偏好的不同子圖交談。如果我們把社交圖譜移到鏈上,我希望這種動態會持續下去。

關于可組合性和社交關系

不同的平臺有不同類型的社交連接,用戶可以相互之間的連接。Facebook有朋友、關注和屏蔽。Twitter有關注、靜音和屏蔽。這些對于這些平臺來說是很好的,但我們可以改進它們,使它們更適合區塊鏈,使它們更具有可組合性。

可組合性是一個計算機科學術語,大概意思是,你可以混合和匹配這些小的、離散的、明確定義的工具,以獲得不同的效果和功能。

考慮到Facebook的「朋友」–這是它自己的連接類型,但它也意味著「關注」,因為當你把某人加為好友時,你會自動關注他們。在Twitter上,「封殺」意味著「靜音」,因為當你屏蔽某人時,你基本上是在讓他們靜音,同時也阻止他們看到你的帖子。

對于我自己的兩個社交圖譜的建議,下面,我想建議跟隨,更干凈和可組合的社交圖譜關系集:

關注:你可以閱讀你所關注的人的帖子。

靜音:你不能閱讀你已經靜音的人的帖子。

屏蔽:你屏蔽的人不能閱讀你的帖子。

在這個方案下,一個封殺是一個「靜音」加一個「屏蔽」,所以它是對同一個目標地址的兩個操作,一起組成的。

如果我想看到某人的帖子,但又不想讓他們看到我自己的帖子,我可以關注他們,再加上屏蔽。或者,如果我想保留通過導航到他們的內容或定期取消他們的靜音來閱讀,我可以關注加靜音。

我試圖以這種方式理清關系,因為它使我們更容易推理接下來的章節中的合約和關系。

我的兩項提案的一些背景

在本文的其余部分,我提出了兩個將社交圖譜分層到十億用戶表中的建議。

第一種,On-ChainGraph,更加開放和簡單,但在費用方面也更加昂貴,所以有些人會喜歡它,有些人不會。

第二種,鏈式圖,更復雜但更便宜,而且提供更多的控制和隱私,所以我預計大多數人會更喜歡它。不過,平臺可以同時支持這兩種方式。

要真正理解這兩個提案,你需要對以下概念有一些基本的熟悉:

不可拆分的代幣和不可拆分不可轉讓的代幣。

世界知識產權組織探討在IP辦公室應用區塊鏈和AI等技術:區塊鏈和AI被認為是當前和未來所有技術領域的驅動力。在過去十年里,這些技術已進入每一個行業,徹底改變其工作方式。世界知識產權組織(WIPO)最近組織的研討會強調了知識產權(IP)辦公室對區塊鏈技術的需求,并就如何將其用于IP資產管理提供了一些想法。在此之后,許多IP辦公室已經開始看到如何在其實踐中實現區塊鏈和AI。區塊鏈和AI將在開發完全自動化的辦公室中發揮重要作用。此外,IP保護區塊鏈、AI和自然語言處理領域的創新,同樣的創新也可以用來加強IP辦公室處理知識產權的現有方式。分布式節點的概念將加強IP辦公室,增加專利、商標和版權的處理。許多國家的辦公室在采用這些技術,并探索各種途徑在各種形式的IP中實現人工大腦和防篡改存儲。此外,區塊鏈和AI有助于簡化和加速專利申請過程,改變專利、商標和版權的用戶體驗。區塊鏈技術在IP領域可能面臨實施挑戰,因開發商大多是私營或半私營企業,目前缺乏確保公共利益的監管機構。這可能會延緩其在該領域的增長速度。如果監管機構能消除公眾對使用加密貨幣的恐懼,并提高對數字記錄保護、免受黑客攻擊和數據訪問權干擾的意識,這項技術可能會很快被采用。(IAM)[2020/4/8]

以太坊域名服務

智能合約

了解一點Solidity也會有所幫助。如果你對上述一項或全部內容模糊不清,我試圖以一種你應該仍然能夠掌握基本知識的方式來寫這篇文章。

對于這兩個提案,我假設我們使用ENS作為身份的根,并向其添加新的地址記錄,其中包含一些相當標準的ERC721NFT合約的地址,這些合約分別代表我上面概述的三種類型的社交關系。這三個合約的作用從一個提案到另一個提案都非常不同,但把它們的地址放入三個特殊的ENS地址記錄的基本想法保持不變。

我還想為社交用戶數據URI提出一個額外的ENS記錄,這樣你就可以更新你的社交數據而不需要消耗gas。一個擬議的profileURI記錄將鏈接到一個藏在某些第三方平臺上的JSON對象,看起來像這樣:

curlhttps://jonstokes.com/jons-profile.json

-H"Accept:application/json"

{

"name":"jonstokes.(eth|com)",

"bio":"Writer.Coder.DoomerTechno-Optimist.CryptographyBrother.",

"website":"https://jonstokes.com/",

"location":"Austin,TX"

}

檔案JSON中的一些內容與現有的ENS字段是多余的,但這沒關系;這樣做的目的是為了給社交平臺提供一些可以顯示的東西,并讓用戶能夠對他們的社交檔案進行修改,而無需花費gas來更新ENS記錄。

建議1:鏈上圖

On-ChainGraph的想法使用NTFT來表示上述的三種關系。對于以下三個社交合約,持有ENSNFT的同一個錢包也應該擁有這些合約,它們的三個對應的ENS地址記錄應該指向這些合約:

OCG追隨者:當你從我的OCG追隨者合約中存入一個NTFT到你的錢包,那么你就跟隨了我。我們中的任何一個人都可以銷毀這個NFT,使你取消對我的關注。

OCG屏蔽:當我從我的OCGGhosted合約中空投一個NTFT到你的錢包中時,我就對你產生了屏蔽。只有我可以銷毀這個NTFT來解除對你的困擾。

聲音 | 央行穆長春:可探討通過各國央行數字貨幣的合作解決跨境支付難題:中國人民銀行數字貨幣研究所所長穆長春10日在“第十屆財新峰會:開放的中國與世界”上表示,全球性非主權穩定幣“熄火”了,區域性非主權穩定幣和全球性非主權穩定幣只是“五十步和百步”的關系,也會面臨同樣的結果。不過,通過各國央行數字貨幣的合作解決跨境支付的難題,是可以進行探討的。[2019/11/10]

OCG靜音:當我從我的OCG靜音合約中空投一個NTFT到你的錢包時,我已經把你靜音了。只有我可以銷毀這個NTFT來解除你的靜音。

這三種情況的語義基本上都是:「相對于我,即合約所有者,你是X」,其中「X」是追隨者、屏蔽、靜音的一種。

這里有一個追隨者合約樣本:

//SPDX-License-Identifier:MIT

pragmasolidity^0.8.4;

import"

function_baseURI()internalpureoverridereturns(stringmemory){

return"https://jonstokes.com/ocg/follower";

}

functionrelationship()public{

return"ocgfollower";

}

functionpause()publiconlyOwner{

_pause();

}

functionunpause()publiconlyOwner{

_unpause();

}

functionsafeMint(addressto)public{

//Preventanyonebuttheownerfromminting

//atokentoanaddresstheydon'town.

require(isOwner(_msgSender())||(_msgSender()==to),"Unabletominttothisaddress");

uint256tokenId=_tokenIdCounter.current();

_tokenIdCounter.increment();

_safeMint(to,tokenId);

}

function_beforeTokenTransfer(addressfrom,addressto,uint256)pureoverrideinternal{

//Disabletokentransfers.

require(from==address(0)||to==address(0),"Cannotbetransferred.");

}

//ThefollowingfunctionsareoverridesrequiredbySolidity.

functionsupportsInterface(bytes4interfaceId)

public

view

override(ERC721,ERC721Enumerable)

returns(bool)

{

returnsuper.supportsInterface(interfaceId);

}

}

如果你熟悉Solidity,你可以看到這個非常簡單的合約試圖做什么。

金色講堂第二期正式開講 EOS引力區創始人廖洋陽將對EOS入門及價值展望進行探討:5月10日晚八點,《金色講堂》第二期正式開講,全球最大EOS社群-EOS引力區創始人廖洋陽前來授課演講。針對當前火爆的EOS廖洋陽將對EOS入門及價值展望進行探討。本次課程將針對EOS是什么、EOS代幣有什么用、EOS的未來等方面,由淺至深對EOS進行全面解讀,讓學員全方面了解的EOS的來龍去脈。[2018/5/10]

首先是擴展:

ERC721Enumerable擴展被包括在內,因此代幣持有者可以被社交網絡客戶端列出來,而不必掃描整個鏈。

我使用Pausable是因為你應該能夠暫停造幣,以便基本上鎖定你的賬戶一段時間,即停止接受新的粉絲。

Ownable是必不可少的,因為有些事情只有合約所有者應該做。我認為沒有必要使用更強大的角色功能。

ERC721Burnable在這里,因為你需要能夠銷毀代幣,以便刪除關注關系。這里面包含的標準burn()函數有我們需要的權限,即只有所有者或令牌所有者可以銷毀代幣。

我包含了Counters,這樣tokenID就會自動遞增,這很方便。

現在對OpenZeppelin向導的輸出進行修改:

safeMint()被修改后,只有合約的所有者可以將代幣鑄幣到其他人的地址。對于所有非所有者,你只能向你調用合約的地址鑄幣。

_beforeTokenTransfer()被重寫,這樣它就基本上禁止了轉讓代幣的能力,創造了一個簡單的靈魂綁定的代幣。

relationship()函數是一個方便的方法,確保有一個簡單的方法來查詢合約并確認NFT代表什么樣的關系。我并不贊成包括這個,但它似乎很有用。

這一切真的很簡單,對于OCG的屏蔽和OCG的靜音變體,你要做以下小改動:

改變合約名稱和符號

改變relationship()和可能的baseURI()的返回值,以反映你所代表的關系。

把safeMint()和burn()都變成onlyOwner函數,這樣只有合約所有者可以調用這兩個函數。

顯然,這將取決于平臺是否以正確的方式履行這些合約。不過,這沒有聽起來那么有威脅性和不穩定,因為如果一個特定的社交平臺不履行你所關心的合約,就不要使用它。

增加付費關注

你可以在safeMint中加入payable,然后使用setMintRate來設定人們必須為以下內容向你支付的價格。因此,類似于這樣的內容:

uint256publicmintRate=0.01ether;

functionsetMintRate(uint256mintRate_)publiconlyOwner{

mintRate=mintRate_;

}

functionsafeMint(addressto)publicpayable{

//Requirepay-to-follow

require(msg.value>=mintRate,"Notenoughethertomint");

//Preventanyonebuttheownerfromminting

//atokentoanaddresstheydon'town.

require(isOwner(_msgSender())||(_msgSender()==to),"Unabletominttothisaddress");

uint256tokenId=_tokenIdCounter.current();

_tokenIdCounter.increment();

_safeMint(to,tokenId);

}

我相信我還能想到許多其他的調整和功能來添加到這個建議中,但最好從簡單和容易理解的東西開始。

建議2:鏈式連接圖

上面描述的OCG合約足夠簡單,但該方案有一些特質,可能會使很多人產生分歧:

所有的東西都是公開的,在鏈上的,包括屏蔽和靜音。你不能這樣做鎖定賬戶,但解決這個問題的辦法可能是使用一個替代賬戶。

每一個行動都要花費gas,這意味著你必須對你關注的人、屏蔽和靜音做出真正的選擇。但如果gas費用足夠高,那么這可能會使網絡無法使用。

對于一個網絡或一個特定的賬戶來說,付費關注可能是也可能不是一個理想的功能,但你會有這樣的選擇。

鑒于不是每個人都會喜歡這個建議的這些特質,我想提出一套替代的社交合約,給用戶和平臺更細化的控制,特別是誰能看到什么樣的信息,而且使用成本更低。

鏈式鏈接圖的基本思想:我們不通過NFT直接在鏈上表示社交關系,而是在鏈下存儲這些關系,并使用鏈上代幣來發現和訪問這些關系。

發現:該合約提供了一個listURI()函數,該函數返回一個JSON列表的鏈接,該列表中的ENS名稱是你打算聲明某種社交關系的。

訪問:如果listURI()返回的鏈接是令牌控制的,那么合約的令牌就會授予持有者對元數據中發現的鏈接的讀取權限。

那么該社交關系就不是直接在鏈上的,而是通過一組合約和URL與鏈相連。

與OCG一樣,三種社交關系中的每一種都由智能合約來管理,但CLG的語義不同:

關注:包含一個鏈接到你正在關注的ENS名字的JSON列表,由它發出的令牌授予對該關注列表的讀取權限。

靜音:包含一個鏈接到你正在靜音的ENS名字的JSON列表,由它發出的令牌授予對該靜音列表的讀取權限。

屏蔽:包含一個鏈接到一個你正在屏蔽的ENS名字的JSON列表,由它發出的令牌授予對該屏蔽列表的讀取訪問權。

因此,CLG令牌的語義是:「這是對我X賬戶列表的讀取權限」,其中「X」是「關注」、「靜音」或「屏蔽」。

你可以把我在這一節中提出的建議看作是我為信息應用描述的電話號碼+地址簿組合的一個近似物。你的電話號碼是公開的,當你把一個新的消息應用程序連接到它時,你可以授予或拒絕該應用程序對你的聯系人的讀取權限。

在我的CLG社交令牌計劃中,你的ENS名字就像你的電話號碼一樣是公開的,你發行和撤銷令牌,以便授予和拒絕閱讀與你有某種關系的人的名單。如果你愿意,你可以把這些令牌授予隨機用戶,但主要是你要把它們授予社交平臺,以便這些平臺知道誰的帖子要顯示給你,誰的帖子要隱藏。

(對構成你的社交圖的列表的寫入權限可能由你正常的ENSNFT控制–如果你的錢包里有你的ENS名字,你就可以對列表進行寫入/更新/刪除的修改。一個可能的替代方案是有第四個社交合約,授予NTFT持有者列表寫入權限,這樣你就可以將列表管理外包給一些第三方)

在鏈下托管這些列表,同時從鏈上指向它們,有幾個好處:

你可以通過在托管列表的端點上使用認證來鎖定你的關系,不讓公眾查看。或者你可以讓它對公眾開放,這樣任何人都可以閱讀它。

更新一個鏈下列表不需要花費gas。

這個方案使得與社交供應商互通的社交圖譜托管服務市場得以建立。

任何人或服務都可以輕易發現你的列表。

代幣訪問控制和讀取訪問

實現CLG合約的關鍵創新是代幣訪問控制。代幣訪問控制背后的概念是,除非你用含有特定訪問代幣的錢包連接到主機,否則你不能訪問主機上的特定數據。

例如,你可以對IPFS上的內容進行代幣訪問控制,這樣只有用錢包中的特定NFT連接到端點的讀者才能查看特定的文件。

CLG使用令牌門為我們的社交合約增加了一些間接性,因此,社交NFT不是代表一種特定類型的關系–關注、靜音或屏蔽–而是代表對你的社交圖譜的一部分的讀取權限。

很明顯,為了使代幣門檻發揮作用,平臺必須尊重它。據推測,如果平臺不尊重代幣訪問控制,你會把你的關系列表轉移到其他平臺,并改變你的合約,必要時重新發布任何NFT。

另外,要清楚的是,有些人的名單在某些時候會泄露。我們生活在一個個人數據泄露的世界,所以如果數據被托管在某個地方,那么有些數據就會被泄露。我將在后面的章節中討論一些可能的緩解措施。

合約范本:CLGFollows

下面的合約將是一個標準的ERC721NTFT合約,與上述OCG的合約非常接近:

//SPDX-License-Identifier:MIT

pragmasolidity^0.8.4;

import"

function_baseURI()internalpureoverridereturns(stringmemory){

return"https://jonstokes.com/clgfollows/";

}

functionlistURI()public{

return"https://jonstokes.com/clgfollows/list";

}

functionrelationship()public{

return"clgfollows";

}

functionpause()publiconlyOwner{

_pause();

}

functionunpause()publiconlyOwner{

_unpause();

}

functionsafeMint(addressto)publiconlyOwner{

uint256tokenId=_tokenIdCounter.current();

_tokenIdCounter.increment();

_safeMint(to,tokenId);

}

function_beforeTokenTransfer(addressfrom,addressto,uint256)pureoverrideinternal{

//Disabletokentransfers.

require(from==address(0)||to==address(0),"Cannotbetransferred.");

}

}

所有的擴展都與OCG相同,只是我沒有包括ERC721Enumerable,因為不清楚是否有人想讓他們的CLGFollows代幣被列舉出來

至于函數方面,我對OpenZeppelin向導的輸出做了以下修改:

relationship():與OLG一樣,它返回社交合約的類型。同樣,對于Solidity合約來說,這可能沒有必要,我也沒有見過這樣做,但盡管如此,我覺得我想讓合約自我報告它的類型。所以我不知道–如果這冒犯了你,請忽略。

listURI()返回一個指向JSON對象的鏈接,該對象是你正在關注的ENS名稱列表。我們希望這個URI能被標記為隱私,但這并不是必須的。

大多數情況下,你會使用CLGFollowsNTFT,把它發布到社交平臺擁有的地址。這樣,該平臺可以讀取你的關注列表,并向你展示正確的帖子。

但你也可以把這些NTFTs發給追隨者,以便你的追隨者可以發現其他追隨者。你可以通過空投給追隨者,或者通過解禁造幣,讓任何人造幣來實現。

所有其他合約的工作方式與上述完全相同,但有不同的名稱和符號,并從relationship()和listURI()返回不同的值。

可能的變數

如果你擔心你的列表從不同的服務中泄漏,那么把listURI()變成更像tokenURI(uint256tokenId)的東西是非常直接的,即簽名是listURI(uint256tokenId),它把tokenID連接到一個基本URI的末尾,這樣每個token持有者就可以得到自己的列表URL。這個功能與列表主機上的一些邏輯相結合,可以讓你把列表隔離開來,使不同的令牌持有者得到主圖的不同子圖。這樣一來,如果一個平臺被擁有,那么只有我的圖的那一部分被泄露了。

和OCG一樣,你可以把safemint變成一個可支付的函數,并向訪問你的列表的人收費。請看OCG部分的代碼,以了解這個例子的情況。

你可能希望能夠更新tokenURI()和/或listURI()返回的URLs,在這種情況下,你需要將這些URLs存儲在變量中,在構造函數中初始化它們,并為更新它們提供onlyOwnersetter函數。這將增加你的鑄幣成本,但如果你只打算把它們給服務而不是個人,這可能并不重要。

服務

這里概述的兩個建議都提供了一些集中式托管服務的地方,即使它只是一個權宜之計,在生態系統過渡到像IPFS這樣的分布式系統之前。

最明顯的服務類型是托管由URI功能之一返回的任何東西–配置文件數據、NTFT元數據和代幣控制的JSON列表。

另一個有用的服務是一種專門的Infura版本,通過API暴露鏈上的社交數據。或者,Infura可以為社交數據提供一個專門的API。

最后,可以有第三方服務來驗證賬戶,以滿足用戶和組織的需求。

總結

我不知道我是否期望我的鏈上社交圖譜建議會以我在這里描述的形式被采納。我提出這些想法,更多的是為了引發對話,討論我們如何從目前完全鎖定平臺的狀態有效地過渡到更便攜的狀態,即你擁有你的圖譜,并可以輕松地將它隨身攜帶。

上述內容有一部分看起來有點像web5的提議,但關鍵的區別在于,我的兩個想法被設計得更簡單,并利用了智能合約和現有的鏈上身份提供者。

如果你從這篇文章中沒有其他收獲,我希望我至少已經說明,在一個分布式賬本技術和智能合約的世界里,我們任何人都沒有必要在2022年被鎖定在一個社交網絡里。解決這個鎖定問題的工具是廣泛存在的,我們只需要拿起它們并使用它們。

原文標題:《TheBillionUserSocialGraph》

撰文:JonStokes

編譯:Dan,W3.Hitchhiker

來源:panewslab

Tags:INTTOKETOKTERMintlayerCoinary TokencgtokenInterValue

萊特幣價格
使用ChatGPT的三條哲學_GPT

作者:0xTodd Twitter:@0x_Todd最近我成為了GPT-4的重度用戶,想著分享一些我自己的使用心得給大家。另外,后面附上一些我常用的指令.

1900/1/1 0:00:00
故事講不下去了?迪士尼撤銷整個元宇宙研發部門_比特幣

據媒體證實,華特迪士尼公司已撤銷開發元宇宙戰略的小型部門,這是該公司更廣泛重組計劃的一部分,預計此次重組將在未來兩個月內把公司人數減少約7000人.

1900/1/1 0:00:00
金色圖覽 | NFT行業周報(3.26 - 4.1)_POW

周報概要: 1、上周NFT總交易額:393,928,177(美元)2、上周NFT總交易筆數:589.

1900/1/1 0:00:00
金色晨訊 | 3月31日隔夜重要動態一覽_區塊鏈

21:00-7:00關鍵詞:美國SEC、Terra聯創、CFTC主席、比特幣Ordinals1.美國SEC:對涉嫌加密貨幣欺詐的John和JonAtina分別罰款2300萬美元;2.

1900/1/1 0:00:00
晚間必讀 | 關于上海升級與ETH質押提款的“終極指南”_區塊鏈

1.金色觀察|LSD、上海升級以及Eigenlayer的終極敘事自2022年9月以太坊合并以來,權益證明(PoS)已成為除比特幣之外所有主要L1鏈的主流共識機制.

1900/1/1 0:00:00
解讀閃電網絡LDK新功能:更便捷的節點設置和異步支付的設想_比特幣

推特創始人JackDorsey創辦的比特幣技術團隊Spiral開發的LDK近期面向公眾解讀未來一年的新路線圖,涵蓋LDK發展的全景.

1900/1/1 0:00:00
ads