Wed, Mar 1, 2023
- 14:55Kevin Harder joined the room
- 15:04Amit Verma joined the room
- 15:08blaz89 joined the room
- blaz8915:24Hey guys. Is there any luck to get a new inv code?
- 15:25I know this chat is not for this purpose actually but who does not try does not get rewarded
- 15:26Please excuse me if am mistaken here :)
- 15:26Just would like to be a tester of the blue sky.
- whyrusleeping15:30Are the ones above used up?
- arcalinea15:30you should probably DM them to people if you want to make sure they get them, just leaving them in the chat will mean someone else could claim it
- blaz8915:31Unfortunately yes
- 15:39bolix joined the room
- Kevin Harder15:46I would love to have a code as well if you still have one.
- 16:00behnam joined the room
- behnam16:01
Hi 🙏🏻
I need bluesky invite code. Thank you if you send it to me.
- George Antoniadis
- 16:05Ariel Acosta joined the room
- tonykent@tonykent:lisbon.ems.host16:15Please give me an invite, I’m so long with you guys! :-)
- 16:59tiaog joined the room
- whyrusleeping17:00Yeah just dm me if you want an invite
- 17:33@tiaog:matrix.org set their display name to tiaog
- 17:34tiaog set a profile picture
- paulghostsuk17:39Hi any chance of a invite cold for me thank you
- sylphrenetic17:40check the latest message in the main chat my guy
- 18:36@tareqanati:matrix.org joined the room
- @tareqanati:matrix.org18:36Message deleted
- olly.dgb18:37Any chance of an invite?
- Nick18:38Ya'll gotta use reverse psychology. Nobody give me an invite....
- @tareqanati:matrix.org18:43Message deleted
- olly.dgb18:48Our friend tareq here is demanding $30 for an invite which means he is either a scammer or a dick or both.
- behnam18:48I can not believe! Some sell the invitation code!
- tiaog
- c.lace18:50Get some invites
- olly.dgb
- b0gg3r19:00That's wild
- @tareqanati:matrix.org19:00Message deleted
- 19:05@kappaseijin:matrix.org joined the room
- 19:36@tareqanati:matrix.org left the room
- Soohan Park (Heartade)20:43
In reply to this message
Oh, I meant the account. My bad. There have been a lot of invites here but... I guess that's not enough to cover most of us, right? Or am I the only one here without an account - 20:44I've never been this jealous for iPhone users 😕
- tiaog20:46Still waiting for a code too 😐️
- Soohan Park (Heartade)20:47Wait this room now has more than 800 people? That's wild
- Soohan Park (Heartade)20:52Btw has anyone tried setting up their own instance? AFAIK the atproto repo includes a server implementation but I've been too busy to try setting it up myself
- @syui:syui.cf20:56
yes, build atproto
123
cd packages/dev-env vim src/index.ts node dist/cli.js
- 20:57however, if you deploy on a hosted domain and create an account, you will get a verify token error
- 20:58
1
lerna run verify --stream
- 21:00please wait while I take a video
- 21:06Ken joined the room
- @syui:syui.cf
- 21:10self-hosting test
- Soohan Park (Heartade)21:12Does the server print any logs about it?
- @syui:syui.cf21:12yes
- 21:13Why it doesn't work, perhaps this is it(edited)
- 21:16
123
1. vim packages/dev-env/src/index.ts && lerna run verify --stream 2. availableUserDomains: ['.test','.bsky.syui.cf'], 3. const db = PDSDatabase.memory(), plc.Database.memory()
- 21:17i set DB_POSTGRES_URL
- Soohan Park (Heartade)
- @syui:syui.cf21:20currently availableUserDomains works for certain
- Soohan Park (Heartade)21:27Have you tried setting the env values defined in https://github.com/bluesky-social/atproto/blob/8826ada5899423606be61f40627b2f184b5cae2e/packages/pds/src/config.ts ?
- @syui:syui.cf21:32there are many things I don't understand either
- Soohan Park (Heartade)21:37I'm just looking at the code on my phone in the metro atm, hoping to be able to dig more into it once I'm off work
- @syui:syui.cf21:43thx
- @jlsgo:matrix.org21:46whyrusleeping: thanks bro!
- 21:58cryptojcdenton joined the room
- 22:01Bev Robb @teksquisite changed their display name to teksquisite
- 22:06cryptojcdenton set a profile picture
- 22:17@tareqanati:matrix.org joined the room
- 22:34shirshxk joined the room
- shirshxk22:39yo guys
- 22:39any chance we can open bluesky on pc
- 22:39or is it launched only in ios
- 22:40Shirshak Shrestha (शिर्षक) changed their display name to shirshxk
- 22:40shirshxk set a profile picture
- amazingca22:45
In reply to this message
According to Bluesky’s devs, their web client is in the works but not released atm. If you’re just curious to look at the posts on Bluesky Social, I made a little thing for that:blue.amazingca.dev. Also recommend checking out Syui’s creation too:syui.cf/bsky - @syui:syui.cf22:48mac runs ios apps, install from apple store
- amazingca22:50As long as you have an Apple silicon-based cpu (M1/M2)
- 22:51ReminexD joined the room
- wolix22:52Guys iam got for invite of bluesky
- Ronalds Vilciņš22:54is there way to get invite? 😊
- wolix22:55Yeah actually his start sending people mails for selection who be on bluesky
- amazingca
- wolix22:57People iam liked how devs of bluesky his working jobs connect community on one way
- 22:58Here why iam excited(edited)
- 23:00Actually his finished android version of app and seems on mail his have android for selection
- 23:30tsny joined the room
- 23:38Mehmet Palabıyık joined the room
- Mehmet Palabıyık23:42hi
- Mehmet Palabıyık23:42Message deleted
- Mehmet Palabıyık23:42Can I get invite code?
- 23:43wtf is bug
- 23:43Sorry for spam , its little bug
- @syui:syui.cf23:44hi
- @kappaseijin:matrix.org23:44hi
- Mehmet Palabıyık23:44Do u have invite code bro ? s@syui:syui.cf
- @syui:syui.cf23:48Message deleted
- @syui:syui.cf23:49no, post searchbsky.social-xxx(edited)
Thu, Mar 2, 2023
- amazingca
- whyrusleeping
- 01:05@tareqanati:matrix.org left the room
- 03:02@softinio:matrix.org joined the room
- @softinio:matrix.org
- harshveer1403:04Push notifications 🙌
- @softinio:matrix.org03:32Joined waitlist while ago any timeline ?
- b0gg3r04:03Soon
- sylphrenetic04:08Soon™️
- 06:14Philo joined the room
- Philo06:14Howdy
- 06:23Philo set a profile picture
- 06:23Phillip Reed (Philo) changed their display name to Philo
- @syui:syui.cf06:55hi update : https://syui.cf/bsky -> https://bsky.syui.cf
- 06:56user : https://bsky.syui.cf/why avatar : https://bsky.syui.cf/syui#github(edited)
- 07:44stoic.alchemist joined the room
- 07:52Cale joined the room
- 08:16mohamed hussein joined the room
- 08:23Aws joined the room
- Aws08:25Message deleted
- Aws08:25I want invite code
- 08:31@furqantabani:matrix.org joined the room
- 08:31@furqantabani:matrix.org left the room
- Aws
- 08:413ws changed their display name to Awa
- 08:42Awa changed their display name to Aws
- 08:43Aws set a profile picture
- 08:47Aws left the room
- 08:48Aws joined the room
- 08:48@iecruz:matrix.org joined the room
- KamatsuKyoto09:11Can i report a bug here?
- 09:11Alan Motta Cardoso changed their display name to KamatsuKyoto
- valueclick09:42Due to the protocol specifications, a full launch of Nostr seems a long way off. However, an excellent feature has been implemented at this time. It is a function that translates foreign language posts and displays them. It is limited to some apps, but it translates them on its own.Bluesky.socialitself does not have a translation engine, but users can use it by signing up with DeepL, getting an authentication key used for DeepL API, and registering withBluesky.social.Bluesky.socialitself does not have a translation engine.
- snarfed09:46
In reply to this message
The initial plan is to bridge ATP to web sites, not AP, but hopefully AP eventually too. The bridge will generate dids for ATP that it handles, and convert between to domain- or AP-based identifiers, ie it's a proxy. https://fed.brid.gy/ already does this between AP and webmention+mf2, feel free to look at how that works as an example - @andrew:trivial.business10:15Is the testflight full? I have an invite and am using the app store released app, but im curious.
- 10:21@swelch:matrix.org left the room
- 12:42あすらも/heguro joined the room
- 13:57Adam The Victini joined the room
- 14:32Carls Freitas joined the room
- 14:37Count Von joined the room
- 14:37Christian von Uffel changed their display name to Count Von
- 14:41ruza joined the room
- 14:41Carls Freitas set a profile picture
- 14:46Rob Pickering joined the room
- 15:06Amir joined the room
- Amir15:22Hello everyone! Is there anyone here who can give me an invite code? I am so curious to try the app. 🫠
- Count Von15:23Hey y’all! 👋🏻 Christian here. Excited to see what Bluesky is actually like. Been on the waitlist for awhile. Looking to explore how the added benefits actually work
- 15:26josuesantos joined the room
- josuesantos15:29For the app begin fine... is necessary to be launch to android
- 15:33Aaron Goldman: what u think of idea of launch to android system Aaron? In this moment that are just begin.
- 15:53derosky joined the room
- derosky15:54hi guys. any invites?
- Hacklet15:55All the ones I got don't work so -- Shrug :)
- derosky15:56got some that doesn’t work too. thanks
- 16:06@kaorit:matrix.org joined the room
- 16:36cokeiv joined the room
- 16:57diogoodev joined the room
- @kaorit:matrix.org17:00hi
- @syui:syui.cf17:04hi
- Nick17:06Well hi
- bnewbold17:07we put out a blog post about the private beta and what we are working on: https://blueskyweb.xyz/blog/3-2-2023-bluesky-beta-app
- 17:09Yahya Kerba joined the room
- 17:13@salehr:matrix.org joined the room
- @salehr:matrix.org
- 17:17@salehr:matrix.org joined the room
- b0gg3r17:19That's up to you @salehr. I need a working beta on my desk by EOD
- 17:20tolo joined the room
- tolo17:20what countries is the app listed in currently?
- 17:27Metaverse Room joined the room
- 17:32@marianatt10:matrix.org joined the room
- 17:36lauranotpalmer joined the room
- @marianatt10:matrix.org17:37Hi any invites?
- 17:38Schumi changed their display name to Anselm Schumacher
- 17:38Anselm Schumacher (@anselm:schumacher.berlin) changed their profile picture
- 17:39lauranotpalmer set a profile picture
- 17:39marianatt10 changed their display name to Mariana
- 17:39@marianatt10:matrix.org set a profile picture
- lauranotpalmer
- @marianatt10:matrix.org17:42lauranotpalmer: can u send me an invite?
- lauranotpalmer17:45don’t have it
- 17:51pcdkd joined the room
- pcdkd17:51Interesting to see how this fits in with nostr, mastodon and farcaster
- 17:52Malte joined the room
- pcdkd17:52imo, nostr already supremely better than mastodon.
- 17:52Remains to be seen with farcaster and bsky
- Malte17:54👋 hello! came here via twitter and am curious to discover bluesky. Might anyone have an invite to spare?
- amazingca
- 17:55Malte set a profile picture
- 17:55maltenuhn changed their display name to Malte
- Metaverse Room
- 17:57Metaverse Room set a profile picture
- @syui:syui.cf18:07Message deleted
- 18:26Guilherme Ferreira joined the room
- 18:30@guzzlima:matrix.org joined the room
- 18:44Gabriel Lima joined the room
- Gabriel Lima18:44hi guys ! any invites?
- amazingca
- Gabriel Lima18:48ok ! thank youu
- amazingca18:48np 👍
- Metaverse Room18:50Done DM. thanks
- Gabriel Lima18:51done dm too ! i’m waiting
- 18:51Mehdy Haghy joined the room
- diogoodev19:11Greetings! I'm interested in learning more about Bluesky. Would anyone happen to have an invitation available?
- 19:11Bruno (@brunomuriel:matrix.org) joined the room
- Bruno@brunomuriel:matrix.org19:13Hi, anyone with invites available?
- Metaverse Room19:17Can anyone help me to login with code? how to use? Does it have to be via cellphone? i'm using a laptop
- @marianatt10:matrix.org
- Metaverse Room
- @marianatt10:matrix.org19:26No just iOS
- Metaverse Room
- @marianatt10:matrix.org
- Gabriel Lima
- Metaverse Room
- @marianatt10:matrix.org
- valueclick19:27I can no longer see the comments that the accounts I follow have replied to.
- yancyscot19:27Still waiting for my invite code as well.
- Gabriel Lima
- Metaverse Room
- @marianatt10:matrix.org19:29
In reply to this message
Ok after that if u want u can send me because 1 invite can be use more than one time - 19:29@rafaelmelo.adv:matrix.org left the room
- Gabriel Lima
- 19:33i’m so looking forward to this social network 😩
- 19:33kamakura joined the room
- 19:36鎌倉 changed their display name to kamakura
- Metaverse Room
- 19:53Ryuta Ishimoto joined the room
- 20:58Brendan A. Miller joined the room
- tolo21:31Hi everyone, I'm looking for an invite as an it student interested in emerging social media(edited)
- amazingca
- 22:36dwither joined the room
- 23:33borismann joined the room
Fri, Mar 3, 2023
- 00:25Ryan Swart joined the room
- 00:51@nobodyu:matrix.org joined the room
- @nobodyu:matrix.org
- @kaorit:matrix.org00:52hi
- 00:55@nobodyu:matrix.org joined the room
- kamakura01:04Hi
- 01:08@kappaseijin:matrix.org set a profile picture
- 02:37yousefed joined the room
- 02:51Bibek joined the room
- Bibek02:57Is there anyone who got invitation and have been using bluesky? How is your experience so far?
- 03:100xb1b3k changed their display name to Bibek
- 03:19hocka10 joined the room
- 03:24leonardofed joined the room
- 03:26@pranitsingh:matrix.org joined the room
- 03:33hornobster joined the room
- 03:41andrenoari joined the room
- andrenoari03:41Hey Devs
- 03:42andrenoari set a profile picture
- 03:42@caiostob:matrix.org joined the room
- @caiostob:matrix.org
- tolo03:53I'm really interested to see how the "Composable moderation & reputation systems" work!(edited)
- 03:55It would be cool if the reputation was based on each users content/attitude preferences, so each user ranks other users differently
- @caiostob:matrix.org
- b0gg3r04:02You could do something with their data repo It contains every like, post, and repost "Can I install the filter that blocks anyone who hasn't liked at least two pictures of cats"
- Malte04:04do invite codes expire?
- 04:04got mine at 2am here and was asleep :D
- George Antoniadis04:04I think they have a max number of times they can be used
- 04:05@pranitsingh:matrix.org left the room
- @syui:syui.cf04:05dm = matrix dm
- Malte04:05I guess I should have realised that's not a good idea if I'm DMing someone with the handle 'whyrusleeping' :)
- George Antoniadis04:06It's most probably a timezone issue :P I think everyone on the bsky team as US based.
- Malte04:09yepp will just try again later (and not go to sleep until I'm signed up..)
- 04:16Minas joined the room
- Minas04:18Hey hey, does anyone have an invite? 🫣
- 04:21Minas Nustas changed their display name to Minas
- 04:21radiolarium joined the room
- 04:33zoltron joined the room
- 04:41mimonelu set a profile picture
- 05:14Samson Yee joined the room
- 05:23productofsociety joined the room
- 05:32Oren joined the room
- 05:35myoud changed their display name to Owen
- 05:36Oren set a profile picture
- 06:06citizenziggy joined the room
- 06:18Giuseppe Bertone joined the room
- 06:29dibi91 joined the room
- 06:30g4bb0_90 joined the room
- 06:34@quevas:matrix.org joined the room
- 06:35@quevas:matrix.org left the room
- 06:38ginza joined the room
- 06:45Martin Korski joined the room
- Soohan Park (Heartade)06:52seems like "dm whyrusleeping" should be our motto and slogan
- Martin Korski06:54Hi, anyone with invites available?
- George Antoniadis06:54this channel has devolved into an invite request thread :/
- xtianpu06:56🤣🤣🤣🤣
- Soohan Park (Heartade)06:56
In reply to this message
By website do you mean, like, piping the feed of ATP activities to a website as new posts, or being able to embed specific activities? Both are extremely cool tho. - 06:58
In reply to this message
I feel like there should be separate rooms for general user discussions and developer stuff - 07:02
In reply to this message
Yeah, the team said one of the main goals was 'algorithmic choice' and I'm really interested in how that's going to be implemented! - 07:04Suggestion/moderation algorithms usually work based on large heaps of user data, so making it work with decentralized system seems like an intriguing challenge
- 07:06I was thinking that they were going to work based on upvote/downvote data, but I guess bsky now doesn't have a downvote? (Haven't used the app or looked a lot into the code yet)
- 07:10@cesvlc:matrix.org joined the room
- 07:13@cesvlc:matrix.org set a profile picture
- 07:31brunomuriel changed their display name to Bruno
- 07:31Bruno (@brunomuriel:matrix.org) set a profile picture
- @cesvlc:matrix.org07:33Message deleted
- 08:01gab joined the room
- gab08:02Message deleted
- 08:03Marcin Korski changed their display name to Martin Korski
- Giuseppe Bertone08:04Using Matrix as communication method? You won my attention! 💪
I read the doc on the website, very interesting idea. I subscribed to the waiting list, I hope I can start testing soon. - 08:31iecruz changed their display name to i11
- 09:34Thiago De Souza joined the room
- 09:41julijulijuli joined the room
- Thiago De Souza09:47hey, does anyone have an invite code for me? o/
- sylphrenetic09:49can we filter the word "invite" maybe
- @planetoryd:matrix.org09:491nvite
- Aaron Goldman10:01
In reply to this message
"algorithmic choice" turns out to be more complicated than it first seems. Isn't it always.
I think about it in three layers.Client, PDS, Indexer
The client is the final arbiter of what gets shown to the user. If you don't believe that install an ad blocker. If something is flagged I say violence or sexual should the client put in a label, put in a click through, hide that it was even there? The client should have local rules for hiding and re-ranking at the edge.
PDS desides what goes to the client. The client can't reorder what it doesn't know about. The bulk of the work of personalisation is on the PDS. Does this post deserve to consume your cell phone bandwidth and battery, does it warrant a push notification. To change this behavior you are limited by what the PDS has as options.
Last but most contentious are the choices for what indexes to build. As the network grows most repos will not have anyone on your PDS following that repo. But we wanted a large world network. The PDS can build indexes over the repos it follows but will also need to query an Indexer. The Indexers are following all the repos they can. Building large but generic indexes. The PDSs are limited to the queries that are efficient given the way the Indexers sort the data.
In the end the client is very personal but has minimal scope for ranking. The PDS has lots of bandwidth, processing, and power but need to limit what you can do to not interfere with the other users. The Indexers have no personal behavior reading and sorting everything in the hope they have the indexes PDSs want to build their algorithms on.
- 10:14@oscarrdg:matrix.org left the room
- Joanna10:37algos are social structures
- 10:42we crave full autonomy, but this means to hold more responsibility
are we ready to exercise our power?
are we ready to moderate our protocols? - 10:45C= > C#
- 10:46But we cannot get c= without c#
- Aaron Goldman10:46
c=
? - snarfed10:49
In reply to this message
the former. basically, wrap traditional blog posts etc in Bluesky formatting and protocols in order to federate (not copy) them into ATP. the result is that a traditional web site/blog itself becomes a first class ATP account, with complete bidirectional interactivity. - 10:49this is what https://fed.brid.gy/ has been doing for many years to federate existing web sites/blogs into the fediverse by wrapping them in AP/AS2.
- 10:51also, the Bluesky people have planned and designed for people creating and using ATP accounts on their own domains, via did:web etc. that's great! this takes the next step, beyond just using your web site as your ATP identity, to federating your web site's content into ATP as well, not just posts but also interactions like reposts, likes, follows, etc, and federating those interactions from ATP back into your site.(edited)
- Joanna
- 11:05@salehr:matrix.org left the room
- Martin Korski11:11I need invite, pls
- 11:33hkiko joined the room
- 11:38Asher joined the room
- 11:53mlb1boy joined the room
- Asher12:02Message deleted
- whyrusleeping12:06^probably not real
- Thiago De Souza
- 12:0858robertas joined the room
- whyrusleeping12:11No more asking in here for invites, just DM me
- 12:11Lets get the conversation back to a technical place
- c.lace12:12Message deleted by whyrusleeping
- whyrusleeping12:14Bro
- 12:17s_ota joined the room
- 12:22s_ota set a profile picture
- Joanna12:35Sis
- 12:38kauatorres joined the room
- 12:38kindablue joined the room
- 14:02topg123 joined the room
- 14:31Trankten joined the room
- 14:51Nick (@nickba:matrix.org) joined the room
- 15:20zqn changed their display name to zq
- 15:33DezNotCompute joined the room
- 15:56peterrood joined the room
- Aaron Goldman16:16I am curious what kinds of knobs people would expect for tuning an algorithm?
- 16:21Tushar Bhushan joined the room
- kauatorres16:26Hi Aaron, can you view the DM?
- Aaron Goldman16:28I can start with two: Discount rate - the amount I down rank old content in favor of new. 1 All time best, 0 reverse chronological, .5 power law Personalization - how much I discount others opinion 1 most popular globally, 0 only my likes taken in to account, .5 power law me> friends > friends of friends...
- Nick17:54I would also consider Representation - How much people are discounted by their current # of visible posts. Where the extreme end represents everyone as equally as possible over a given timeframe.
- @syui:syui.cf18:24
hi, update done
- add login, signin
https://bsky.syui.cf
- add login, signin
- @syui:syui.cf18:44I haven't been able to test the operation much yet, so please let me know if you have any problems
- Aaron Goldman18:55
In reply to this message
So if I understand. 1 pure random, 0 only majority views, .5 More popular views have more representation than less popular views - 19:30forza7 joined the room
- 19:49fcnmkwcmyz joined the room
- 19:50dkjrcw6h4j joined the room
- Nick20:14I think that's close to what I have in mind. But with less emphasis on popularity and more emphasis on how frequently a source is represented. The use case I imagine is if you're following 1-3 celebrities whose content is both frequent and popular. In my experience most algorithms will over represent those celebrities and overshadow all the other people you follow. In that scenario I'd want to be able to control things so that all of the people I'm following are equally presented to me and not just those that are popular or frequently posting.
- 20:18guedes joined the room
- 21:21reishis joined the room
- 21:40@tareqanati:matrix.org joined the room
- @marianatt10:matrix.org
- xtianpu23:03
In reply to this message
I'm still confused, so who will provide the large indexer then? It looks like a search engine crawler instead of crawling the PDS keep providing posts to the indexer, doesn't it? - xtianpu23:22
In reply to this message
I'm just wondering if the user can tune those 3 variables represented by percentage. Most social media users used their timeline curated, with the default value algorithmic timeline based on popular will make their transition to bluesky easier imho - 23:37xed101 joined the room
- 23:42@themrv:matrix.org joined the room
Sat, Mar 4, 2023
- 00:52@tareqanati:matrix.org left the room
- 00:59tampaflight joined the room
- 01:34H joined the room
- 01:43Hadzar Nur Ikhram changed their display name to H
- bnewbold01:55yeah, I'm pretty interested in this kind of thing. i want to follow people with a "budget" of how many times a week they can end up in my feed. eg "follow for 3 posts/week max". would be nice to get "best" within that bound, might be tricky to implement that (feed changes over time)
- 01:56numpad0 joined the room
- 02:17@themrv:matrix.org left the room
- 03:03hiroki_su joined the room
- Soohan Park (Heartade)03:07How do we filter out / moderate inappropriate or unlikable posts?
- 03:51ka2n joined the room
- 04:25Fred joined the room
- Fred04:26Hello Devs
- 04:26Is there anyway to get an invite to test the bsky beta app
- 04:27Fred set a profile picture
- 04:27Frederick Abila changed their display name to Fred
- 05:11@neos21:matrix.org joined the room
- 06:07Owen changed their display name to Oren
- 06:20birdie joined the room
- 06:32hadesincarnate joined the room
- hadesincarnate06:33Hello!
- 07:05cryptotusa joined the room
- cryptotusa07:06Hello 👋
- 07:21zyun joined the room
- hadesincarnate07:26This is all so exciting
- 07:35snowcrush joined the room
- 07:43Ri99999 joined the room
- 07:43Shunsuke Uemoto changed their display name to Ri99999
- 07:48遠野るん joined the room
- 09:00koteitan joined the room
- koteitan09:01Hi
- 09:01Jason Man joined the room
- koteitan09:02I joined bluesky so joined here too
- 09:03eay joined the room
- 09:10birdie79 changed their display name to birdie
- 09:11birdie set a profile picture
- 09:15eay set a profile picture
- birdie09:21Hello!
- hadesincarnate
- 09:38nan1125 joined the room
- 09:40@marianatt10:matrix.org left the room
- 09:41mtx_ac joined the room
- 10:15alisamix joined the room
- mtx_ac10:49Hello!
- 10:51mtx_ac set a profile picture
- 10:59Alec Larson joined the room
- Alec Larson11:01what is the URL for private beta server?
- mcurrington11:02Good morning to everyone! Has anyone got a spare invite I may please take off their hands? I have been interested in BlueSky for some time now. Thanks in advance. Matt
- sylphrenetic11:14
In reply to this message
I feel like a set number of times they can show up is too restrictive. instead it'd be better to have Representation just be one more factor contributing to Presentation (what I'm calling whether a post is shown to you). that way if you have seen 3 of their posts this week their content has weight against it from the Representation portion of the algorithm, but other factors might overpower it, like if you've selected to see more popular posts than niche ones and this person has a post pop off then you might end up seeing it anyway, because one factor overpowered another. - ngerakines11:15
Good morning. I've been reading through the spec and am trying to write a small lexicon parser, but I'm seeing some differences between the lexicon documentation and the lexicons.
The main thing is that the lexicon structure includes top level elements like parameters, input, output, etc. that are nested inside of
{"defs": { "main": {} } }
. That behavior is described in the lexicon documentation.Can anyone shed some light on this?
- 11:16For example https://atproto.com/guides/lexicon#schema-format and https://atproto.com/lexicons/com-atproto-server#comatprotoservergetaccountsconfig seem to be ad odds.
- sylphrenetic
- ngerakines11:18
Sure, let's take this typescript code from the schema documentation on the lexicon page:
1234
type: 'query' | 'procedure' | 'record' | 'token' // if type == record key?: string record?: JSONSchema
That would lead me to expect those top level elements, key and record, to either be present (or not) inside of record type structures. Given the
type
attribute isn't marked as optional (no question mark), I also expect it to be present. - 11:19
But if I look at https://atproto.com/lexicons/app-bsky-system#appbskysystemdeclaration I see
1234567891011121314151617181920212223242526
{ "lexicon": 1, "id": "app.bsky.system.declaration", "defs": { "main": { "description": "Context for an account that is considered intrinsic to it and alters the fundamental understanding of an account of changed. A declaration should be treated as immutable.", "type": "record", "key": "literal:self", "record": { "type": "object", "required": [ "actorType" ], "properties": { "actorType": { "type": "string", "knownValues": [ "app.bsky.system.actorUser", "app.bsky.system.actorScene" ] } } } } } }
The
type
attribute is nested along with the key and record attributes.(edited) - 11:20So I suppose my question is, is the lexicon json schema definition supposed to be contained within the top level
defs/main
and if so, can that be documented and the example typescript structure updated? - 11:20If that's not the case, then all of the lexicons on the site don't reflect the lexicon documentation.
- 11:21Alternatively, is there a json schema structure for lexicons themselves?
- sylphrenetic11:23this might give you a better idea https://atproto.com/specs/lexicon#interface
- ngerakines11:23Oh that's super helpful
- sylphrenetic11:23I think you're right that the schema format on this page isn't technically correct https://atproto.com/guides/lexicon#schema-format
- 11:24but yea that link I gave for the lexicon spec, not the guide, is much more comprehensive on defining each interface
- ngerakines11:25Yep, I completely missed this. Thanks for pointing me in the right direction.
- sylphrenetic11:25no prob :)
- 11:25Shayan Nabi joined the room
- sylphrenetic11:25I personally do think that the
LexUserType
interface could be renamed though - ngerakines11:26Yeah, that reads more like
LexBaseType
or something given everthing extends it. - sylphrenetic11:26exactly
- hadesincarnate11:28Will everyone selected from the waiting list recieve the email form mentioned above?
- whyrusleeping11:46Yes
- 11:46Its apparently really hard to send millions of emails
- 11:46You have to do it slowly and consistently
- Brad Brown11:47prolly better just to tell everyone to join here and @ you for invites, then 😂
- 11:48@luizgustavoaf:matrix.org joined the room
- hadesincarnate11:48Was only asking so I know what to look for in my inbox
- @luizgustavoaf:matrix.org
- hadesincarnate
- @luizgustavoaf:matrix.org
- hadesincarnate
- @luizgustavoaf:matrix.org
- 11:58@luizgustavoaf:matrix.org joined the room
- ngerakines12:24
Ok, one more thing that doesn't seem clear.
The https://atproto.com/lexicons/com-atproto-handle#comatprotohandleresolve lexicon has the
parameters
attribute and it doesn't seem to line up with the lexicon schema.123456789101112
"main": { "type": "query", "description": "Provides the DID of a repo.", "parameters": { "type": "params", "properties": { "handle": { "type": "string", "description": "The handle to resolve. If not supplied, will resolve the host's own handle." } } }
Where the lexicon schema looks like this:
123456
interface LexXrpcQuery extends LexUserType { type = 'query' parameters?: Record<string, LexPrimitive> output?: LexXrpcBody errors?: LexXrpcError[] }
Is that a typo?
- 12:24Thiago Medwiros joined the room
- ngerakines12:28According to the lexicon, I wouldn't expect the
parameters
object to have atype
attribute with nestedproperties
. - 12:28Thiago Medwiros set a profile picture
- ngerakines12:28
On the Lexicon guide at https://atproto.com/guides/lexicon#rpc-methods, it looks like there is a more accurate view of what that properties structure would look like:
123456
"properties": { "did": {"type": "string"}, "name": {"type": "string"}, "displayName": {"type": "string", "maxLength": 64}, "description": {"type": "string", "maxLength": 256} }
- 12:29Anselm Schumacher (@anselm:schumacher.berlin) left the room
- Thiago Medwiros12:38Hiiii, I came here with the intention of knowing more about this new social network, I don't have a lot of programming skills but I am extremely enthusiastic about new technologies, discovering that this new social network is open source and different from the others, so I'm very interested and curious to find out
- 12:39timehack changed their display name to Thiago Medwiros
- ngerakines
- Thiago Medwiros12:46I am a bachelor's of mathematics, it may be that this knowledge I have can serve in some way here ,-, (or not)
- 13:00@reyg0r:matrix.org joined the room
- 13:00@reyg0r:matrix.org left the room
- 13:03KlonAmy joined the room
- 13:23Ryan Silva joined the room
- Ryan Silva13:23Hello, how do I access the Beta version?
- 13:24Amane Natsuko joined the room
- 13:49Konrad Wiktor joined the room
- Konrad Wiktor13:51hello how do i access to beta?
- 14:26thrden joined the room
- Aaron Goldman15:10There are also artists that only post 1 or 2 times a year but I want to know when they do. E.g. national weather service for my zip code.
- thrden15:22Aaron Goldman: reactive accounts would be wildly cool. Basically mini-apps
- Aaron Goldman15:22
In reply to this message
The Indexers will probably look less like a crawler and more pubsub like. When a client makes a post they send it to their PDS. Their PDS probably has a list of Indexers and other PDSs that care about that repo and can notify them of the new content. - thrden15:221 weather service, and when you follow it you can pass it some info and it would be able to customize its tweets to you, wildly out of scope
- Bob Wyman15:23Message deleted
- thrden15:23but a lovely concept
- Aaron Goldman15:23Crawling would be slow
- 15:24A back and forth of replying probably requires a sense of livness
- 15:58@skarnio joined the room
- 16:19Antony Batistella joined the room
- 16:48RichAdams joined the room
- 18:14masumiaoya joined the room
- 18:44okihika joined the room
- 18:49Matheus Webber joined the room
- Matheus Webber18:51hello how do i access to beta?
- 18:53hamano joined the room
- 19:24nighthaven joined the room
- nighthaven19:24Hello.
- 19:24Code ?
- b0gg3r19:34Code: ++++++++++[>+++++++>++++++++++>+++>+++++++++++>++++++++++++<<<<<-]>++.>---.+++++++.-------.>++.>-.<<.+++.+.>.>>+.<++.>----.<<.>---.+++..----.
- Ryan Silva19:34How can I get the Beta version of the app?
- nighthaven
- Ryan Silva19:36How do I get access to the app?
- amazingca
- Ryan Silva19:46mine is android anyway thanks
- nighthaven
- 19:48A Japanese nostr engineer developed this service for blower based Bluesky client.
- 19:49So even Android users can use Bluesky with this service.
- @syui:syui.cf19:50skylight, i also tried to mention
- 19:51skylight, singin ok?
- nighthaven19:53
In reply to this message
If you have an invitation code but no iOS device, you cannot use Bluesky. But with the tools we are Nostrian have created, you can even create an account from any browser. However, this is a different tool from Skylight. - @syui:syui.cf19:54singin example : https://bluesky-account-creator.vercel.app/
- nighthaven19:54We, the Japanese Nostrians, need more invitation codes to scale the Bluesky usage environment.
- @syui:syui.cf19:56...I don't think the developer has anything to do with the Japanese
- 19:58Especially in communities where dev gather
- b0gg3r20:06Countries don't exist on the internet ❤
- @syui:syui.cf20:09I wanted to express that
- nighthaven20:14Sure
- @syui:syui.cf20:18Thank you from the bottom of my heart
- 20:51radec joined the room
- @syui:syui.cf
- Aaron Goldman
- nighthaven23:10Just a joke:) I will also contribute to the development of Bluesky.
Sun, Mar 5, 2023
- 03:52@tdelenikas:matrix.org joined the room
- sylphrenetic04:43one potential feature of the iOS app that I think would really help with adoption in the very near future (esp. with federation coming) is the ability to give someone a list of ATP users to follow and them be able to import it and automatically follow all or a subset of them that they choose. this is kiiind of possible right now in twitter through their "recommended follows" feature which gives you a list of similar users to follow, which I love, but I think to start out the easiest win is just to allow me to create a list of users within the app, give the list a name, and either post the list or be able to share the list via SMS or something, which would be imported by the recipient's app and allow them to select which users in that list they want to follow. I'm envisioning the community creating all these different lists of users they think are good follows for certain kinds of memes, journalism, or certain content creators.(edited)
- 05:204ras joined the room
- 05:45ゆら joined the room
- 05:45Amin Mansouri joined the room
- RichAdams06:07Hello everyone
Please there Is something I don’t understand…
In the traditional web we have central database to store informations
In Nostr we have relays that store information
In the AtProto, where the data are stored ? - 06:08RichAdams set a profile picture
- 06:08richadams changed their display name to RichAdams
- hadesincarnate
- George Antoniadis06:32
In reply to this message
In at proto data are stored in data repositories, similar to federated systems like mastodon in that aspect. https://atproto.com/guides/data-repos - RichAdams
- George Antoniadis06:42
In reply to this message
If you are building just a client you will only talk to the various servers that will host the data. — I assume that your client will need a local datastore/database in order to keep local caches and improve performance though. - RichAdams06:46
In reply to this message
So different servers will host the data…
But can I run my server that will host all the data related to my client stuffs ?
And talk to that server by default in my client ?Also, can an already existing social media move to atproto and still conserve its business logic ?
- George Antoniadis06:55
In reply to this message
Atp’s selling point is to allow users to move between clients and repositories and interact with users from other repos. If you don’t want that functionality I think you’d be better off with a more straightforward backend for your app. (This is my personal opinion which might not be shared with others or atp devs)
As for your second question; Atproto allows you to define your own types in order to extend the existing functionality. Other clients can then add support for those types. That should in theory allow you to match the functionality of an existing social media. Think of them as nostr nips since you seem to be familiar with nostr. Not all clients implement all nips.
- 06:56evertaoo joined the room
- 06:57rockinhawke joined the room
- 06:58rockinhawke set a profile picture
- RichAdams07:09
In reply to this message
Okay thanks so much 👏
Another question if you don’t mind :
Is a data migration possible ? For example form firebase (NoSql database) to repos ?
The migration will be instanced by the user and the goal is to migrate his data to atproto ?
Of course by considering that I already added all the nips necessary for this migration ?
And also… can big companies be created on atproto ? Can a business logic be implemented and money flows out from users interactions ? If yes, then who own this money if I consider that I don’t have a server and I just built a client with transactions and premium subscriptions ? - @evbogue:matrix.org07:32What is the premium subscription for?
- guedes07:33
In reply to this message
don’t ask, just let the question die in the dark and pretend it never happened. the more you think the worse it gets. believe me. - 07:33please forget about that
- RichAdams07:34
In reply to this message
I don’t know if a kind of premium subscription is possible in atproto…
I don’t understand well the concept that’s why I am asking
For example a premium feature to add more stuffs like traditional social media - 07:37
In reply to this message
Everyone starts somewhere. I started learning these technologies so it’s totally understandable that I don’t get the point… If you think that it’s in letting the question die in the dark the best solution then thanks. Maybe someone will help me and teach me(edited) - @evbogue:matrix.org07:44Well how much do you know already?
- 07:56@neos21:matrix.org left the room
- RichAdams07:59
In reply to this message
I started learning traditional manner of doing things in September.
I am participating in a hackathon where I am creating a traditional social media.I launched it on 20th January for anyone to test it and it’s already working an I have 12K users (testers) on it right now and everything is going well.
Suddenly in February I heard about nostr while creating it… that’s why I want to restructure it to use atproto or nostr (didn’t decide yet) because I learned basic concepts of these protocols and I think that it’s better than traditional manner of Doing things
I know how how to make a traditional client-server website, mobile applications (backend and front)
I know how to make a smart contract and their deployment - George Antoniadis
- 08:15
In reply to this message
I think these are outside of the scope of the protocol at this point and would be very specific to the application you are trying to build. - 08:19
In reply to this message
My suggestion would be to start small in order to better understand the basic building blocks that are available to you. Check out the protocols in detail, build a basic client for both nostr and atproto and see what it takes and how everything fits together. Nostr will be easy but understanding atproto indepth might be a bit more time consuming due to its internals (see ipld).
By then you should have a better understanding and more specific questions or suggestions about the protocols.
- RichAdams08:21
In reply to this message
Okay thanks
My last question : can a developer get incomes from its client ?
I mean : if I Create a widely used client: can I get incomes from it ? - George Antoniadis08:25
In reply to this message
Nothing stopping you from making a great paid client with features users would be happy to pay for. There are quite a few paid twitter and mastodon clients that offer features the official one did not. - RichAdams
- 08:30nekotto joined the room
- 08:37lino.jr joined the room
- 08:40Djamkite C joined the room
- 08:56@therealg:matrix.org joined the room
- 08:56@therealg:matrix.org left the room
- 10:24malan joined the room
- ngerakines10:54Conceptually, I'm trying to understand the relationship between users and repositories. Given the repository
at://alice.host.com
/at://did:plc:bv6ggog3tya2z3vxsub7hnal
, if I create a collection of songs likeat://alice.host.com/io.example.song
with one of them beingat://alice.host.com/io.example.song/3yI5-c1z-cc2p-1a
is that unique song record idat://alice.host.com/io.example.song/3yI5-c1z-cc2p-1a
going to stay the same if I move to a different repository? - 10:55Or is the general idea that a user may move between repositories, but the content created at those repositories is permanently associated with those repositories?
- Aaron Goldman10:57
In reply to this message
I like to use the analogy of a podcast.
RSS is an open protocol.
Any podcast app can pull from any server.
Any server can serve any podcast app.
So do you need a server to make a podcast app? No but many will whether it's just for updates or for features like syncing which podcast you listen to.You're the client developer is separate from the podcast host.
At protocol takes this one step further. There are three parties. The app developer. The content controller. And the personal data server.
The app developer doesn't need a server anymore than the podcast app developer did but they may want to for their own features.
The PDS personal data server just stores in the repo whatever the content controller wants them to. This could be like producing a podcast or simply rating one.The content controller, identified by a DID, uses the applications to create content and adds that content to the repo they control.
We have transitioned from a two-party web for one party is the server and the other is the client to a three-party web where we have server, client, and content creator.
Once I have a PDS I could use many apps but those apps don't own my data My data lives in my repository not my applications database. The PDS is serving my data but it is not the PDS's data I can move my data to a new PDS whenever I want.Web2: client, server
Web3: client, controller, serverThe server is still required and most users will want to keep a copy of their data in case their PDS disappeared suddenly but you no longer have to be able to run infrastructure to be a publisher or an app developer just a PDS operator.
I don't know if that made things clearer or more confusing let me know if I inspired any questions.
- 11:09spiderham joined the room
- RichAdams11:12
In reply to this message
Thank you for your explanation. I will copy paste this message somewhere and check it sometimes as I consider it very useful and contains basic terms to explain the concept 👏❤️ - Aaron Goldman11:12Also since the repo is signed it is self authenticated data so any cache of the data is equally authoritative as getting it straight from the controller's PDS
- 11:14I should note my definitions of web2, web3 is not universally accepted. It is a somewhat contested term.
- ngerakines11:19So with all of that said, if a user is onpds-one.combut wants to migrate topds-two.com, because all of the content onpds-one.comis signed by the PDS, ifpds-one.comgoes away, none of the content is able to be verified anymore, right?(edited)
- Aaron Goldman11:31So if the number of existing copies gos to zero the data is obviously gone. Ifpds-one.comdisappears and you have a copy of your repo you just upload it topds-two.comand update your DID Document to point topds-two.comand you are migrated. If you don't have a copy of your own repo you would contact the PDSs of your followers and Indexers and ask if one of them has a copy. If you have followers they use different PDSs then it is likely you can find a copy of your own repo on someone else's server.
- ngerakines11:40So that makes sense with data that isn't signed, but there is a signing key involved. When a user migrates frompds-one.comtopds-two.com, is there some sort of negotiation between the user,pds-one.com, andpds-two.comto transfer or rotate those private keys?
- Aaron Goldman12:00The key is rotated by updating your DID Document. the DID method will determine how this is done. did:web - update the website (https) did:plc - update theplc.directorydid:ion - Bitcoin transaction did:key - no rotation sorry ... There are many did methods most of which will never be supported by PDSs
- ngerakines12:01Yeah, so I guess what I'm really getting at is this question: Is the intention that users have control of and access to the private keys referenced in their DID document?
- Aaron Goldman12:01It was one of the design goals that you never need your PDSs permission to leave.
- 12:02Yeah the controller needs to keep a recovery key.
- 12:06If you let your old PDS sign the repo for you they have that key so you need to rotate away from that key to the new PDSs key.
- ngerakines12:07Got it, that all makes sense now.
- 12:08So a "well behaved" PDS will encourage you to create and keep your recovery key, and then use that as part of the account creation process. During migration, clients should handle idea that existing accounts need to rotate keys and use them with the destination PDS.
- Aaron Goldman12:11PDSs can't assert control of a did:PLC so the client needs to check the did document is signed by the directory.
- 12:13Well co-signed did PLC is a little more complicated to prevent the directory from rotating keys. The directory doesn't know your recovery key so it can't rotate by it self
- ngerakines12:28Yeah, that makes sense.
- 12:45Anselm Schumacher (@anselm:schumacher.berlin) joined the room
- 13:04ginza changed their profile picture
- 13:28keyhan joined the room
- bnewbold13:42
In reply to this message
In the Bluesky beta? Right now you can "mute" users (on the user profile). if there is illegal content it can be reported for "hard takedown" at the infrastructure level, but that is only for extreme (eg, actually illegal) cases. we are still wrapping up our federated moderation system, which will also build on the report workflow. that will get written up when it is ready - bnewbold13:48
In reply to this message
we are about to do a polish pass on the lexicons themselves, as perhaps the last "not backwards compatible" changes. some endpoints will be removed, and some things renamed or re-organized. also adding a couple small features to the schema language itself.
there will probably be an iteration of the docs after that, so they should end up more consistent soon - b0gg3r13:49That "hard takedown" is (from a protocol perspective) an operating choice of the PDS?
- bnewbold13:52
In reply to this message
part of this might slot in with our concept of multiple feeds and multiple feed generators. eg, you could subscribe to a feed with content from a specific community or on a topic, even if you follow nobody (yet) - bnewbold13:57
In reply to this message
I think the closest technical analogy is with git. the information is in a repository, and the repository usually ends up with a canonical location (online, always available), but other people often have copies (eg, maybe on your laptop). in bluesky it will be more common than with git to not have a full copy on your phone and just interact remotely ("light client"), but in theory there is nothing preventing a "heavy client" that works on the repo on-device - 13:58
In reply to this message
correct, the PDS or any service/infrastructure provider (eg, crawlers, indexers) - bnewbold14:10
In reply to this message
these are really great questions!
it is true that if you use a URI likeat://alice.bsky.social/io.example.song/abc123
, and are hosted atbsky.social
, then move tonewsky.io
and close your oldbsky.social
account (orbsky.social
shuts down), the oldalice.bsky.social
handle wlil not resolve and there could be problems. for this reason, we usually try to use the "DID version" of URIs, likeat://did:plc:bv6asdf123/io.example.song/abc123
, because these will continue to work after any migrations. but, of course, the handle-based URI is more human-friendly.
another aspect is that you will (soon!) be able to use handles which are domains separate from your PDS host. right now everybody hasbsky.social
as their PDS and their handle is on*.bsky.social
. we are adding support to import so you can use a personal domain likealice2000.io
, or something likealice2000.student.uni.edu
or whatever, but still havebsky.social
as your host. in that situation you could switch tonewsky.io
as PDS, and the handle would not change. but, we will still allow people to get*.bsky.social
handles if they want - 14:11by the way, we moved the did:plc registry code to a new git repo, made some small tweaks to the "operation" schema, and have updated docs: https://github.com/bluesky-social/did-method-plc
- 14:12(oh, or maybe we didn't update README 😅)
- bnewbold14:18the big change is that there is a single signing key (for writing to the atproto repo), and multiple recovery keys (not just one). the signing key does not have the power to update did:plc by default, but the signing key can be included in the list of recovery keys, and then it can. this can further reduce the trust needed in a PDS service provider, because they would have no power to hijack your did:plc, even if you miss the recovery key "window". having multiple recovery keys gives you the option to use multiple hardware key devices, or an offline key, or delegate to a third party, or any combination of these. the recovery keys have a ranked order of priority. to be transparent, we have not yet implemented behaviors in the client app to create and register a recovery key by default. the default behavior is for the PDS to still have the signing key and recovery key (control of did:plc) by default. the backend stuff is all there, just need to be careful how we do this onboarding flow so folks don't accidentally get locked out permanently
- valueclick14:18I can accessBluesky.social(?) from my pc browser! Thank you very much. I will use it.
- valueclick14:19Message deleted
- valueclick14:20I am not a developer.
- ngerakines
- valueclick14:27MetaMask and Alby are both Wallet, but the notation of the private key that must be memorized is different.I am not a developer.
- 14:30People who use both Peepeth and Nostr have two wallets. I am not a developer.
- ngerakines14:43bnewbold / Aaron Goldman: can one of you read through a small doc that I wrote to make sure my understanding of the relationship between signing keys and recovery keys? https://github.com/ngerakines/atproto-rs/blob/main/QUESTIONS.md
- bnewbold14:55nngerakines: here are some notes on keys: https://github.com/ngerakines/atproto-rs/issues/9
- ngerakines14:55full disclosure: I'm going a little blind by purposefully not looking at other implementations and without access to the beta for the time being.
- Aaron Goldman14:56The DID is `did:plc:<hash of initial state>` so a client can validate the initial state of the DID Document. Subsequent to the initial state updates need to be signed by the recovery key.
- xtianpu
- 14:57Is the web client already launched bro Aaron Goldman: ?
- bnewbold14:57when things stabilize a bit more we can write some simple cross-language interop tests. it would be great to eventually have a full protocol test suite ("acceptance tests"), but that is a bunch of work
- ngerakines14:58yeah
- bnewbold14:59nngerakines: your notes mention handles with "@" in front. technically the handle is the full domain, with no "@"; that is just a convention for display. we might be automagically handling @handle and prefixes (not full-qualified handles) in some endpoints, but I wouldn't rely on that
- 15:50Julia Hung joined the room
- 16:05@unyyyuuuuuu:matrix.org joined the room
- valueclick16:58
In reply to this message
The name of the web app is not "Bluesky", but I was able to jump to it by stepping on the URL in front of this page. - 17:11zq changed their display name to Asher
- 17:12Asher set a profile picture
- 17:31narendasan joined the room
- valueclick18:36With the web app, I can access Bluesky from Android without the Android app. This helped me too. I have an iPhone and an XPERIA. I am not a developer.
- b0gg3r18:38If this continues without someone posting a link, I'm forced by company policy to presume you are a troll
- @evbogue:matrix.org18:43Well anyone can sign a hash, so there is nothing to troll
- amazingca18:45
In reply to this message
I don’t think it’s currently possible to view Bluesky’s web client as it is currently in development. But there’s some third party adaptations that work pretty well. - 19:21Super Frogs joined the room
- 20:14Ricardo Grego joined the room
- 21:29kakakaya joined the room
- 23:23avenue-photography joined the room
Mon, Mar 6, 2023
- 02:56janniks joined the room
- janniks02:57Any invites available? Would love to test and try to develop on this protocol 🙏🏻
- 03:23kottilabo joined the room
- amazingca
- arunwadhwa
- George Antoniadis03:45
In reply to this message
Only one I've seen is https://blue.amazingca.dev might -- have been snarfed ? sorry don't recall - arunwadhwa
- 03:47It’s funny I was talking about amazingca’s wrapper while replying to amazingca only. 🙈
- 03:56arshs joined the room
- @syui:syui.cf
- amazingca
- arshs04:02Message deleted
- arshs04:07I'm a dev building at Harvard, just tried to dm an admin and message is incapable of being delivered. Wanted to join Bluesky so I could learn more about AT as well <3 can anyone assist? whyrusleeping ?(edited)
- 04:08Grateful!
- 04:40@kachu:matrix.org left the room
- 04:41kcchu joined the room
- 04:42kcchu set a profile picture
- 08:17os7on joined the room
- os7on08:19Please can anyone help with a Bluesky invite code?
- 08:23foxytanuki joined the room
- 08:45foxytanuki set a profile picture
- sylphrenetic10:02are DMs supported by ATproto, or will those be tackled individually by applications? it seems like from looking at the ATproto repo that all of the lexicons for objects like posts and reposts are defined at the application level, namely the app.bsky lexicons for now. are those lexicons intended to be used as a part of the base protocol, just as like default implementations, or are they exclusively used by Bluesky the application, and other applications need to define their own lexicons, including DMs?
- 10:37ben-geometry joined the room
- sylphrenetic10:37another question. re: moderation, I see from here https://atproto.com/guides/overview#algorithmic-choice that content discovery is governed by indexers. could I then understand indexers to basically be servers that provide the output of algorithms to an application at certain endpoints, and that applications call these endpoints to receive the latest feed based on which algorithm they choose? or do indexers themselves not do any filtering, algorithms must live on separate servers which pull all data from indexers and then applications would need to follow the endpoints from the algo servers and not the indexers themselves?
- Soohan Park (Heartade)11:20
In reply to this message
My understanding is that indexers only do indexing and pds providers provide algorithms based on the data on the indexers - 11:22
In reply to this message
Other apps can use app.bsky lexicons, and it will likely be the case when other apps emerge. But bsky doesn't have stuff like DM and private posts for now if I remember correctly - Soohan Park (Heartade)11:30
In reply to this message
Amazing work!! I was thinking I should make one but you got it before I even started lol - Aaron Goldman11:30
nngerakines: there are three ways to do a recovery key that makes sense to me. (Not necessarily atproto)
1: hardware TPM has a non-extractible key. You must have the hardware to use the key. Examples Yubikey (FiDo key), phone, laptop.
2: Long strong seed words. Example https://www.eff.org/dice EFF's Short Wordlist #2 [.txt] has 1296 words that is 10.3 bits of entropy per word. 25 words is 258.4 bit so plenty for a 256 bit key. Just use sha256 or whatever to hash to a 256 bit key.
3: Salted Slowed key derivation. Pick a random 256 bit public salt and a slow key derivation function like PBKDF2, bcrypt or scrypt. Use the public salt and your seed words to generate the secret key. Store in your DID Document both the public key and the public salt. When you need to regenerate the recovery_key pull the DID Document find your seed words and regenerate the key.
Since this process is slow and individualized, we need far less entropy in the seed words. Most of the entropy is provided by the public salt. 6-8 word from EFF's Short Wordlist #2 would be sufficient for your seed words giving you 62-82.7 bits.60-80 bits would not have been enough if we were using a fast hash and no salt as someone could generate billons of billons of keys hoping to find a valuable one but it plenty of entropy if they have to attack your specific public salt by running a slow function billons of billons of times.
So hardware TPM, 25 seed words fast hash, or 6 seed words + 256 bit public salt slow hash would be how I would store the recovery key.
Specifically I would use a physical piece of paper with the did:plc:ex234 and the 6 seed words printed on it and the public salt in the DID Document next to the recovery key. e.g. did:key:z6MknqfvFLUGULzfP2KSV1mquSzfkUZizuPefmePx5xRVi9X#recovery_key_4b503e0cb36927afec3b9081d518fb9007be35dfe327dd904b7c21d43471c07f
- arunwadhwa12:14
In reply to this message
How about implementing something like Apple Passkeys? https://developer.apple.com/passkeys/ - Aaron Goldman12:24
In reply to this message
Passkey is an extractible FiDo key stored in the Devices TPM. The advantage of extractable FiDo keys is that you can sync them e.g. iCloud. The advantage of non-extractable keys is you know your key is not clowned somewhere else.
But yes, this is also a viable option and when you authorize a new device as a recovery device you don't need to update the DID Document with the new devices key you just copy the key to the new TPM. - 12:26bip-0039 is also a good choice for word list if you care more about an integer number of bits then easy dice generation of the secret https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
- Aaron Goldman12:37but I like https://www.eff.org/dice EFF's Short Wordlist #2 [.txt] 😁
- 13:08Wilmer Alzate Roman joined the room
- 13:22Alec Larson set a profile picture
- 13:28Thib changed their display name to Thib (away on March 7 ✊)
- Aaron Goldman14:06oh look, dids are being moved between domains https://plc.directory/export?after=2023-03-06T18:45 😄
- 14:09@cesvlc:matrix.org left the room
- Aaron Goldman14:12Side note: @Chrome
application/jsonlines
is a text file not a binary. Don't download it show it. This is why people useapplication/jsonlines+json
which is a lie but at least chrome shows it. - jmcasey14:34For any other smartarses out there, I would recommend waiting for Daniel Holmgren 's guide for updating your handle lest you bork your bsky account(edited)
- 14:43@unyyyuuuuuu:matrix.org left the room
- 15:42mkloouo joined the room
- 16:04panji.bsky.social joined the room
- panji.bsky.social16:05Is bluesky social available on android yet?
- 16:10PascalCGN joined the room
- Aaron Goldman16:10Available is a fuzzy term in an open system https://blue.amazingca.dev
- panji.bsky.social16:18I am still waiting for invite code. Like years ago. Is theres other solutions?
- amazingca16:19Dm whyrusleeping
- jmcasey
- josuesantos
- panji.bsky.social
- b0gg3r17:03Yup, that's live and worked
- @syui:syui.cf
- @syui:syui.cf17:26
How do you do the domain name handle?
123
{ "did": "did:plc:uqzpqmrjnptsxezjx4xuh2mn" }
- 17:28
dns ?
1
txt : _atproto.exmaple.com, did=did:plc:uqzpqmrjnptsxezjx4xuh2mn.
- @syui:syui.cf17:36oh, done
com.atproto.handle.update - 17:45amyli joined the room
- 17:45Amy Li changed their display name to amyli
- amyli17:46hi
- @syui:syui.cf17:48hi
- 18:14heylo joined the room
- jmcasey18:21You can confirm a successful handle rotation here: https://plc.directory/export?after=2023-03-06T23:00
- 18:21Thanks Aaron Goldman , didn't realise that was available
- @syui:syui.cf18:36thx!
- 18:41ok
- 19:02avrong joined the room
- 19:23@l_tan:matrix.org joined the room
- 19:24@l_tan:matrix.org joined the room
- 19:47al-1s joined the room
- 20:25okome joined the room
- 20:37Seth joined the room
- @evbogue:matrix.org21:40Yah changing your signing key means signing your new public key. It'd be cool to have a browser app.
- panji.bsky.social
- @evbogue:matrix.org21:48It shouldn't matter
- 21:51If it doesn't work on a boat with whatever computer you have, scuttle it.
- @syui:syui.cf
- 21:55err : username -> mail login
- 21:56Some clients may not support
- Aaron Goldman22:06
In reply to this message
Not sure whether I understand the question. The repo's are authenticated data so you can validate them no matter how you got them. If a client had nearby or airdrop you should be able to gossip around the repo's.
Granted the demo client in beta now doesn't support local network connections it bounces everything off the PDS. You would need a client that held an account locally rather than server side signing.
- 22:09Actually now that I think about it. Even with the server side signing configuration you couldn't publish new commits but you could still gossip around any already signed ones.
- @evbogue:matrix.org22:09Messages can be signed everywhere by anyone.
- Aaron Goldman22:09Anyone with the keys sure.
- @evbogue:matrix.org22:10And they all can have them.
- Aaron Goldman22:15The PDS is responsible for ordering events so if something is signed by the account key but not timestamped by the PDS it's like read-uncommitted. The update is not final until the PDS orders the commit. But if I am going into database consistently models we should probably go to a thread and not the main channel. I don't think most people here care
- @evbogue:matrix.org22:17Everytime I hear PDS I think Twilight Imperium.
- 22:17But yah, distributed everything is not hard!
- 22:17Make a keypair
- 22:18Sign a message
- 22:18What everyone is asking for is equality in their appspace
- 22:19Not some Macintosh-stuck exclusive universe where someone else signs their messages
- 22:20Build a castle, it will sign your messages. When a boat will do!
- Aaron Goldman22:24We have a CAP theorem choice. If we want Available then sure distribute the keys sign locally. If we want Consistent then you need a consensus group, here the PDS. Both choices are reasonable for different applications.
- @evbogue:matrix.org22:25You can have all of it.
- 22:26And on all platforms
- Aaron Goldman22:28Is this the Twilight Imperium you are referring to? https://en.m.wikipedia.org/wiki/Twilight_Imperium Playing time 5–14 hours, 😨
- @evbogue:matrix.org22:30Dude, epic
- 22:30You ever want to play a 12 hr board game
- 22:30Call me
- 22:31But PDSs defend the planets in the game
- Aaron Goldman22:32As long as it's shorter than Axis and Allies. I have never gotten to the end with at some point giving up and agreeing to ignore some of the rules.
- @evbogue:matrix.org22:33I'm pretty sure it's longer
- Aaron Goldman22:33Ah, Planetary Defence Systems
- @evbogue:matrix.org22:33and we gotta have 6 players
- 22:34Otherwise the game doesn't work
- 22:35Seems kind of offtopic, but actually 10 years ago I got into signing and hashing because of that game
- Aaron Goldman22:35I wander who will build the first board game over AtProto app. 🤔
- snarfed22:36for everyone jumping the gun on rotating their bluesky dids onto their DNS domains: any idea how the PDS handles the initial *.bsky.socialusername you rotate off of?
- 22:36ie, is it freed up for other users? or is it blocked for future use for now?
- @evbogue:matrix.org22:38Ok so to explain web5. You generate a keypair and sign a hash of a message. If you want a human readable pointer to the public key that can be whatever.
- 22:38Generically, sans Macintoshes
- 22:40Like I email my mom all the time. "hey my pubkey is ezVThYBx5hoRMnVB1uAF+WT5t9soXvbxUqq0j8tMEZI=
- 22:40No PDS needed
- 22:42And if I want to establish a new identify I just generate a new pubkey and sign off on the old one
- Aaron Goldman22:44How do you rotate the key? Can you keep the same identifier?
- @evbogue:matrix.org22:45Not if you use cryptography
- 22:46You have to start with one and then link to the next one
- 22:46And really
- 22:4799% of uxers just lose their private keys anyway so
- 22:47You might as well give them a username and password
- 22:47Or
- 22:48Teach them cryptography
- Aaron Goldman22:51Not sure I follow. I was thinking about the scenarios where a user gets a new phone and wants to de-authorize the old one.
- 22:53In did:plc they would sign an operation that adds the new key and removes the old key. The DID stays the same.
- @evbogue:matrix.org22:53It doesn't work
- 22:53Or do anything
- 22:54Unless you build a castle with a king who decides what is what
- Aaron Goldman22:59Or a council of barons did:keri https://identity.foundation/keri/did_methods/ Or a council of hash power did:ion https://identity.foundation/ion/
- @evbogue:matrix.org22:59Or you can just generate keypairs
- 23:00Which verify
- 23:00And hashes
- 23:00Which verify
- Aaron Goldman
- @evbogue:matrix.org23:02In Twilight Imperium, you don't want anyone else controlling your PDSs
- whyrusleeping23:06
In reply to this message
It does appear to be freed up, we’re gonna discuss the implications there tomorrow - 23:06Maybe it makes sense to “freeze” the handle for some time period
- snarfed23:06definitely, some time period or maybe even permanently
- Aaron Goldman
- snarfed23:06(thanks!)
- whyrusleeping23:06But also if we do that then we need to limit how often people can change handles
- snarfed23:07this is the road toward the "welcome to hell" of social networks: policy and its implementation
- 23:07not the fun parts of plumbing or product development, but it crops up pretty quickly once you have real people doing real things. whee!
- @evbogue:matrix.org23:08so say we all
- whyrusleeping23:08Yeah… we’re aware of the path weve chosen to walk