Se estivesse usando monero estaria na Cracolândia.
Todos comemorando o Bitcoin subindo e o meu sentimento é o mesmo de sempre, desejando que ele caia.
Que desgraça, ainda tenho pouco demais 😢
So do you query relays for follows and build the graph on the fly at the time of the search request?
In the case of the relay search, it doesn't involve a graph—it's just a simple list, since the number of relays is very small and is not likely to increase significantly. The similarity calculation is the same, but it's done by iterating over a simple array.
On the front end, a POST request is made to the relay, which eliminates any relays that don't respond to the request, listing only the active relays. This ensures that only active relays will appear in the search results. Another thing I implemented is a 2-second timeout for the requests made to the relays, which also ensures that only the relays closest to you, and thus more relevant, will appear.
I only use a graph for the users. The relays are mapped in kind 3 events, which contain a list of relays and are sent to the engine that saves them in a list loaded into RAM. The graph is also loaded into RAM at the application startup, and everything runs in memory.
I'm a few steps behind, my project is still a bit primitive haha
Right now, it only performs a simple breadth-first search (BFS) on the graph, where I calculate the similarity between user names and the search term using an algorithm I implemented based on this paper: http://www.catalysoft.com/articles/StrikeAMatch.html
I'm not using any database; I implemented everything from scratch in C to achieve the highest possible performance. By using the paper above and implementing it in the most optimized way possible with bitwise operations and everything, the similarity calculation became orders of magnitude faster than all existing methods—about 300% faster than cosine similarity, for example.
But it's still a pretty primitive project, as I mentioned. Right now, it's just a simple search in a graph and list. Later on, depending on the needs that come up, I might implement something like PageRank when considering user posts. For now, the search is just done by profile.
Not exactly. I did some tests, and initially I wanted the search to be performed in a "network" starting from the user who is doing the search, considering the "distance" within that network as a factor for relevance — meaning, in a search, users closer to me, with more similarity to my query, would have higher relevance, and those farther away would have lower relevance.
In theory, it looks great, but when I tested it in practice, perhaps because the number of users was still small, the results were quite poor. So, I added a "similarity" property to the users resulting from the search and simply sorted the list at the end in descending order by the "similarity" property.
In the form described above, the results were much more accurate, so once I got the desired outcome, I optimized the code to make the search as fast as possible. To summarize, the most efficient approach given the current number of users is to take the list and perform a simple search sorted by similarity. I’m still not making good use of the graph properties, and I’ll revisit the analysis when the user base is large enough for graph-based search results to be more relevant.
This week, I’ll solve an issue in the method that calculates the similarity between users’ names in the list and the search term. There’s a bug causing it to return poor results quite often.
Ah e também sou autodidata, pra se ter uma ideia, conclui minha graduação em análise de sistemas já fazem pouco mais de 4 anos, e eu nunca fui buscar o diploma, no fim do curso estava faltando 3 a 4 dias por semana porque já estava trabalhando e estudando fora da faculdade. Sempre virei madrugada estudando por curiosidade assuntos de computação que nem faziam parte do curso etc
Se eu for estudar física, quero colocar toda a minha energia nisso, você me vera nos livros de história. O mesmo se eu for empreender.
Também tenho super facilidade em correlacionar os assuntos, e tudo mais, mas uma coisa é experimentação por hobby, outra é dedicação profissional de vdd.
Nicola Tesla dedicou a vida a ciência, todos os grandes nomes se dedicaram totalmente a ciência, pra ter os resultados que eles tiveram tem que tornar ciência uma missão de vida, pra mim isso é nítido. Praticamente o mesmo serve para empreender.
Então cheguei no grande momento de escolher, e é uma escolha miseravelmente dura kkk empreender ou se dedicar a ciência? Estou tendendo para empreender, porquê quero família grande etc..
Bom, talvez eu comece a estudar física no início do ano que vem e empreenda logo depois, onde as circunstâncias forem mais propícias eu fico, na maioria das vezes e para a maioria das coisas não é a gente que escolhe mesmo rsrs
A minha experiência diz que se tentar fazer tudo ao mesmo tempo acaba não fazendo nada direito kkk
Programar eu não largo nunca kkkk
Mesmo se for estudar física, para fazer prova matemática de hipóteses hoje em dia é tudo feito via software. Se for empreender, vai ser com software também..
A grande dúvida é, me dedicar a estudar física, ou me dedicar a empreender, na minha visão empreender é a única forma de se obter uma vida boa de verdade, ter família grande, muitos filhos dentre outras coisas. Porém, física e matemática é uma área que me faz brilhar os olhos...
Estou em um impasse para decidir...
Quero estudar física, tenho me aprofundado muito em estudos de matemática (algebra, trigonometria, análise combinatória, probabilidade etc).
Quero empreender com software e Bitcoin.
Atualmente estou na faze mais estável da minha vida em anos, e me preparei nos últimos 5 anos para essas duas coisas. Oque você faria?
Mandei um ZAP só pra contrariar a afirmação 🙌
Hey Mises, im taking a look at your indexer now.
https://github.com/misesdev/nostr-indexer
You should take a look at our GrapeRank engine. Looks like we’re trying to solve the same problem … in almost the same manner. … maybe we can colab?
https://github.com/Pretty-Good-Freedom-Tech/graperank-nodejs
Live demo at
Sure, I'll take a look; we can collaborate!
The engine repository itself is private for now, but I'll make it public soon. It's equivalent to an in-memory database; the project is in C and is still a bit amateurish, haha.
Bom argumento, eu acho que levará um bom tempo mesmo, e isso ainda considerando que o Bitcoin existirá até lá. Se o Bitcoin ainda existir nos próximos 70 a 80 anos, é inevitável a substituição do ouro e o aumento do uso industrial dele em relação ao uso monetário. Lógico, a extinção do uso do ouro como reserva talvez nunca aconteça mesmo, ele sempre coesistira em paralelo a outros ativos.
It is a centralized solution divided into three stages (indexer, engine, and web application).
The indexer basically starts from my public key and retrieves the people I follow, then iterates through the list of people I follow and does the same, and so on, until the searches return no more results.
The indexer inserts users into a Trie tree, where the public key is the address in the tree, and at the end of each branch is a user. This user has a linked list of addresses in the tree for the users they follow. So, I have a mix of a graph and a tree for efficient searching.
Finally, this "search engine" application is not directly exposed; there is a web application that actually makes requests to the search engine, similar to an unauthenticated graph database. The API does the same.
The search is conducted in the graph starting from the user initiating the search; if no public key is provided, the search begins from my profile.
P.S.: There is still a minor bug that's distorting the search results; I'll fix it as soon as I have time.
Yes, you can search for users and relays...
Sim, mais ou menos isso, você pode pesquisar por usuários e por relays, só serão exibidos usuários ativos mapeados e relays ativos.
Sim, no conjunto das características o ouro é o melhor para o uso industrial, ao menos nas aplicações comuns. Mas de fato o ouro não é O melhor condutor, você está certo. Se bem que o mesmo se aplica aos outros matais, no seus usos como reserva
Esse argumento da materializadade é mutio válido, também acho que seja importante, porém, a realidade tende a ser diferente doque a gente imagina haha, a vdd é que ninguém liga para a materialidade, eu mesmo, que acho importantíssimo, faz muito tempo que não pago nada em papel. A vdd é que a materialidade do dinheiro está desaparecendo, e é possível que em algum momento ela retorne dado uma necessidade emergente, mas acho improvável.
O ouro tende a ser reduzido a uso como jóias(colecionável) e como uso industrial. Ele é o metal melhor condutor que temos, e é utilizado em quantidades ínfimas nos elétricos hoje, se utilizado em quantidades maiorias de diluição irá aumentar muito a eficiência energética de vários eletrônicos. Logo, imagino que esse seja seu caminho natural se um outro ativo o substituir nas características de escassez, fungibilidade, divisibilidade etc.
E como o Bitcoin não tem aplicação industrial, é mais eficiente para nós como humanidade utilizarmos o ouro na indústria, e utilizar o Bitcoin como reserva, cumprindo o papel do ouro de forma melhor do que o ouro cumpre hoje.
Legalmente você pode fazer, acho que se fosse em Bitcoin real talvez não, não vi isso a fundo. Mas o depósito caução no caso do contrato de locação, é um dinheiro que ainda é meu, mas fica apenas na mão da imobiliária ou do proprietário até que o contrato seja finalizado, então eu posso determinar que esseeu dinheiro fique alocado em qualquer instrumento financeiro que seja regulado, no caso, ETF de Bitcoin já é regulado há um bol tempo no Brasil.
Ah e ainda estou no Brasil