diff --git a/nostr_dvm/utils/wot_utils.py b/nostr_dvm/utils/wot_utils.py index 2a74e9e..7ddc2a0 100644 --- a/nostr_dvm/utils/wot_utils.py +++ b/nostr_dvm/utils/wot_utils.py @@ -1,5 +1,6 @@ import asyncio import os +from itertools import islice import nostr_sdk @@ -15,7 +16,7 @@ import random from scipy.sparse import lil_matrix, csr_matrix, isspmatrix_csr -from nostr_sdk import Options, Keys, NostrSigner, NostrDatabase, ClientBuilder, SecretKey, Kind, PublicKey +from nostr_sdk import Options, Keys, NostrSigner, NostrDatabase, ClientBuilder, SecretKey, Kind, PublicKey, Filter from nostr_dvm.utils.dvmconfig import DVMConfig from nostr_dvm.utils.nostr_utils import check_and_set_private_key @@ -579,7 +580,47 @@ def _perform_walks(S_nodes, S, walks_to_do, alpha): visited_count[current_node] += 1 return visited_count +async def get_metadata(npub): + name = "" + nip05 = "" + lud16 = "" + try: + pk = PublicKey.parse(npub) + except: + return "", "", "" + opts = (Options().wait_for_send(False).send_timeout(datetime.timedelta(seconds=5))) + keys = Keys.parse(check_and_set_private_key("test_client")) + signer = NostrSigner.keys(keys) + client = ClientBuilder().signer(signer).opts(opts).build() + await client.add_relay("wss://relay.damus.io") + await client.add_relay("wss://relay.primal.net") + await client.add_relay("wss://purplepag.es") + await client.connect() + profile_filter = Filter().kind(Kind(0)).author(pk).limit(1) + events = await client.get_events_of([profile_filter], datetime.timedelta(seconds=4)) + if len(events) > 0: + try: + profile = json.loads(events[0].content()) + if profile.get("name"): + name = profile['name'] + if profile.get("nip05"): + nip05 = profile['nip05'] + if profile.get("lud16"): + lud16 = profile['lud16'] + except Exception as e: + print(e) + await client.shutdown() + return name, nip05, lud16 + + +async def print_results(graph, index_map, show_results_num, getmetadata=True): + for item in islice(graph, show_results_num): + key = next((PublicKey.parse(pubkey).to_bech32() for pubkey, id in index_map.items() if id == item), None) + name= "" + if getmetadata: + name, nip05, lud16 = await get_metadata(key) + print(name + "(" + key + ") " + str(graph[item])) def test(): diff --git a/tests/pagerank/subrank_demo_notebook.ipynb b/tests/pagerank/subrank_demo_notebook.ipynb index fab979e..2e83484 100644 --- a/tests/pagerank/subrank_demo_notebook.ipynb +++ b/tests/pagerank/subrank_demo_notebook.ipynb @@ -23,69 +23,77 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 1, "outputs": [], "source": [ "# Imports\n", - "from nostr_dvm.utils.wot_utils import build_network_from, save_network, load_network, get_mc_pagerank, get_subrank\n", - "from nostr_sdk import PublicKey\n", + "from nostr_dvm.utils.wot_utils import build_network_from, save_network, load_network, get_mc_pagerank, get_subrank, get_metadata, print_results\n", "import time\n", "import networkx as nx\n", "import random\n", - "from itertools import islice\n", + "\n", "\n" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-07-30T13:22:26.751361Z", - "start_time": "2024-07-30T13:22:26.708967Z" + "end_time": "2024-07-30T14:00:01.633887Z", + "start_time": "2024-07-30T14:00:01.054687Z" } }, "id": "5ac404375ef61608" }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false + }, + "id": "eadbd0b491bc2f00" + }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 9, "outputs": [], "source": [ "user = '99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64'\n", - "show_results_num = 20" + "show_results_num = 20\n", + "use_files = False\n", + "fetch_metadata = True" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-07-30T13:24:50.792302Z", - "start_time": "2024-07-30T13:24:50.756816Z" + "end_time": "2024-07-30T14:02:33.979216Z", + "start_time": "2024-07-30T14:02:33.977432Z" } }, "id": "8d89d517de8b506e" }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 6, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Step 1: fetching kind 3 events from relays & pre-processing\n", - "current network: 44029 npubs\r\n", - "Finished in 39.349228858947754\n", - " > index_map_99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64.json\n", - " > network_graph_99bb5591c9116600f845107d31f9b59e2f7c7e09a1ff802e84f1d43da557ca64.json\n" + "current network: 44014 npubs\r\n", + "Finished in 58.22388768196106\n" ] } ], "source": [ - "index_map, network_graph = await build_network_from(user, depth=2, max_batch=500, max_time_request=10)\n", - "save_network(index_map, network_graph, user)" + "index_map, G = await build_network_from(user, depth=2, max_batch=500, max_time_request=10)\n", + "if use_files:\n", + " save_network(index_map, G, user)" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-07-30T10:09:36.764366Z", - "start_time": "2024-07-30T10:08:56.071082Z" + "end_time": "2024-07-30T14:01:58.889751Z", + "start_time": "2024-07-30T14:01:00.661550Z" } }, "id": "c5de7bf0bac361ff" @@ -102,33 +110,25 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 7, "id": "f5a48d91-80e1-4016-8030-9ac9ef0ab1af", "metadata": { "ExecuteTime": { - "end_time": "2024-07-30T13:24:57.460302Z", - "start_time": "2024-07-30T13:24:56.525858Z" + "end_time": "2024-07-30T14:02:05.554025Z", + "start_time": "2024-07-30T14:02:05.546180Z" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading the database...\n", - "finished in 0.9305830001831055 seconds\n" - ] - } - ], + "outputs": [], "source": [ - "# loading the database\n", - "print('loading the database...')\n", - "tic = time.time()\n", - "\n", - "index_map, G = load_network(user)\n", - "\n", - "toc = time.time()\n", - "print(f'finished in {toc-tic} seconds')" + "if use_files:\n", + " # loading the database\n", + " print('loading the database...')\n", + " tic = time.time()\n", + " \n", + " index_map, G = load_network(user)\n", + " \n", + " toc = time.time()\n", + " print(f'finished in {toc-tic} seconds')" ] }, { @@ -144,12 +144,12 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 10, "id": "bc5a4f83-d5b9-4def-a7f7-403cd0beedfe", "metadata": { "ExecuteTime": { - "end_time": "2024-07-30T13:25:02.210417Z", - "start_time": "2024-07-30T13:25:01.035876Z" + "end_time": "2024-07-30T14:03:25.690080Z", + "start_time": "2024-07-30T14:02:59.127942Z" } }, "outputs": [ @@ -158,27 +158,27 @@ "output_type": "stream", "text": [ "computing global pagerank...\n", - "npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8 8.17420152364383e-05\n", - "npub1aeh2zw4elewy5682lxc6xnlqzjnxksq303gwu2npfaxd49vmde6qcq4nwx 5.782689313706971e-05\n", - "npub10fu0hlkx3s4n4dsgfu0cpqephga4afr4qtzpz9vsyqf7vj88v2yqdp8vp4 4.2360772179521104e-05\n", - "npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5 4.714319787019475e-05\n", - "npub1e30jt8crv6phnrj22gr3mwuhywrs9lak7ry94akjw0ydm0juptas5xmkwq 2.8456329932975766e-05\n", - "npub1tr4dstaptd2sp98h7hlysp8qle6mw7wmauhfkgz3rmxdd8ndprusnw2y5g 4.3253896241013506e-05\n", - "npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc 6.09543251259536e-05\n", - "npub1hu3hdctm5nkzd8gslnyedfr5ddz3z547jqcl5j88g4fame2jd08qh6h8nh 7.947486834509654e-05\n", - "npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424 9.098197147408706e-05\n", - "npub102a0auqvye3eayugvfwy44un9l477t45uck8s2p08xzpgh784uvslsh7w9 3.646167073617604e-05\n", - "npub148xfa6g0e6rqxne88vzfwqag43qk8xuugthptgkzp6qencs6ad9s3rzddg 2.675817761455185e-05\n", - "npub1s05p3ha7en49dv8429tkk07nnfa9pcwczkf5x5qrdraqshxdje9sq6eyhe 8.070732704308375e-05\n", - "npub1yp7wfa7msdpusf4vupzttttu2mx3cns7whx5cgkt4yr9pkpvujus2mzys7 3.473073977961172e-05\n", - "npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8 9.44024020631286e-05\n", - "npub1sqaxzwvh5fhgw9q3d7v658ucapvfeds3dcd2587fcwyesn7dnwuqt2r45v 4.817683202910838e-05\n", - "npub1vwymuey3u7mf860ndrkw3r7dz30s0srg6tqmhtjzg7umtm6rn5eq2qzugd 5.395497768621135e-05\n", - "npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx 0.0001313344661339858\n", - "npub1jhgmf58wdd4mwe4t95ffea079kjxc7f62ncg9gdjmwcrmy0x6x8sfd8u8c 2.90586145074687e-05\n", - "npub1s5yq6wadwrxde4lhfs56gn64hwzuhnfa6r9mj476r5s4hkunzgzqrs6q7z 8.576070476842701e-05\n", - "npub15dqlghlewk84wz3pkqqvzl2w2w36f97g89ljds8x6c094nlu02vqjllm5m 8.248128484477218e-05\n", - "finished in 1.1764459609985352 seconds\n" + "Don't ₿elieve the Hype 🦊(npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8) 8.163684335574227e-05\n", + "The: Daniel⚡️(npub1aeh2zw4elewy5682lxc6xnlqzjnxksq303gwu2npfaxd49vmde6qcq4nwx) 5.7772373353072425e-05\n", + "zach(npub10fu0hlkx3s4n4dsgfu0cpqephga4afr4qtzpz9vsyqf7vj88v2yqdp8vp4) 4.225869500489523e-05\n", + "elsat(npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5) 4.740428451060313e-05\n", + "opreturnbot(npub1e30jt8crv6phnrj22gr3mwuhywrs9lak7ry94akjw0ydm0juptas5xmkwq) 2.8600984950627014e-05\n", + "Seth For Privacy(npub1tr4dstaptd2sp98h7hlysp8qle6mw7wmauhfkgz3rmxdd8ndprusnw2y5g) 4.345057953406442e-05\n", + "JeffG(npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc) 6.123308353585933e-05\n", + "CARLA(npub1hu3hdctm5nkzd8gslnyedfr5ddz3z547jqcl5j88g4fame2jd08qh6h8nh) 7.928631886973004e-05\n", + "Derek Ross(npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424) 9.094182894540007e-05\n", + "DickWhitman(npub102a0auqvye3eayugvfwy44un9l477t45uck8s2p08xzpgh784uvslsh7w9) 3.6363382167542e-05\n", + "Gutenberg(npub148xfa6g0e6rqxne88vzfwqag43qk8xuugthptgkzp6qencs6ad9s3rzddg) 2.664332507864098e-05\n", + "Jeff Booth(npub1s05p3ha7en49dv8429tkk07nnfa9pcwczkf5x5qrdraqshxdje9sq6eyhe) 8.054632796072222e-05\n", + "Kanuto(npub1yp7wfa7msdpusf4vupzttttu2mx3cns7whx5cgkt4yr9pkpvujus2mzys7) 3.4660795662680846e-05\n", + "NVK(npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8) 9.447440217961344e-05\n", + "ИΛKΛDΛI(npub1sqaxzwvh5fhgw9q3d7v658ucapvfeds3dcd2587fcwyesn7dnwuqt2r45v) 4.8115435493306357e-05\n", + "NunyaBidness(npub1vwymuey3u7mf860ndrkw3r7dz30s0srg6tqmhtjzg7umtm6rn5eq2qzugd) 5.391411823278926e-05\n", + "ODELL(npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx) 0.00010958137198559553\n", + "Platte(npub1jhgmf58wdd4mwe4t95ffea079kjxc7f62ncg9gdjmwcrmy0x6x8sfd8u8c) 2.9063569661285428e-05\n", + "preston(npub1s5yq6wadwrxde4lhfs56gn64hwzuhnfa6r9mj476r5s4hkunzgzqrs6q7z) 8.571223889338872e-05\n", + "saylor(npub15dqlghlewk84wz3pkqqvzl2w2w36f97g89ljds8x6c094nlu02vqjllm5m) 8.256293517091252e-05\n", + "finished in 26.598531246185303 seconds\n" ] } ], @@ -188,8 +188,8 @@ "tic = time.time()\n", "\n", "p_G = nx.pagerank(G, tol=1e-12)\n", - "for item in islice(p_G, show_results_num): \n", - " print(next((PublicKey.parse(pubkey).to_bech32() for pubkey, id in index_map.items() if id == item), None) + \" \" + str(p_G[item]))\n", + " \n", + "await print_results(p_G, index_map, show_results_num, getmetadata=fetch_metadata)\n", " \n", "toc = time.time()\n", "print(f'finished in {toc-tic} seconds')" @@ -208,12 +208,12 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 11, "id": "68bbe6d2-c19a-4a84-8ba0-13ae2b6e13d6", "metadata": { "ExecuteTime": { - "end_time": "2024-07-30T13:25:07.077798Z", - "start_time": "2024-07-30T13:25:06.183493Z" + "end_time": "2024-07-30T14:05:35.375935Z", + "start_time": "2024-07-30T14:05:18.516484Z" } }, "outputs": [ @@ -222,34 +222,33 @@ "output_type": "stream", "text": [ "progress = 100% \r\n", - "Total walks performed: 440290\n", - "npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8 6.396075897159921e-05\n", - "npub1aeh2zw4elewy5682lxc6xnlqzjnxksq303gwu2npfaxd49vmde6qcq4nwx 4.6316411669089085e-05\n", - "npub10fu0hlkx3s4n4dsgfu0cpqephga4afr4qtzpz9vsyqf7vj88v2yqdp8vp4 3.969978143064779e-05\n", - "npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5 4.852195508190285e-05\n", - "npub1e30jt8crv6phnrj22gr3mwuhywrs9lak7ry94akjw0ydm0juptas5xmkwq 3.087760777939272e-05\n", - "npub1tr4dstaptd2sp98h7hlysp8qle6mw7wmauhfkgz3rmxdd8ndprusnw2y5g 4.6316411669089085e-05\n", - "npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc 5.954967214597168e-05\n", - "npub1hu3hdctm5nkzd8gslnyedfr5ddz3z547jqcl5j88g4fame2jd08qh6h8nh 0.00012130488770475713\n", - "npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424 7.278293262285428e-05\n", - "npub102a0auqvye3eayugvfwy44un9l477t45uck8s2p08xzpgh784uvslsh7w9 3.308315119220649e-05\n", - "npub148xfa6g0e6rqxne88vzfwqag43qk8xuugthptgkzp6qencs6ad9s3rzddg 2.205543412813766e-05\n", - "npub1s05p3ha7en49dv8429tkk07nnfa9pcwczkf5x5qrdraqshxdje9sq6eyhe 6.175521555878544e-05\n", - "npub1yp7wfa7msdpusf4vupzttttu2mx3cns7whx5cgkt4yr9pkpvujus2mzys7 3.5288694605020256e-05\n", - "npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8 7.498847603566805e-05\n", - "npub1sqaxzwvh5fhgw9q3d7v658ucapvfeds3dcd2587fcwyesn7dnwuqt2r45v 5.293304190753039e-05\n", - "npub1vwymuey3u7mf860ndrkw3r7dz30s0srg6tqmhtjzg7umtm6rn5eq2qzugd 4.190532484346155e-05\n", - "npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx 0.00013453814818163972\n", - "npub1jhgmf58wdd4mwe4t95ffea079kjxc7f62ncg9gdjmwcrmy0x6x8sfd8u8c 2.6466520953765193e-05\n", - "npub1s5yq6wadwrxde4lhfs56gn64hwzuhnfa6r9mj476r5s4hkunzgzqrs6q7z 7.719401944848181e-05\n", - "npub15dqlghlewk84wz3pkqqvzl2w2w36f97g89ljds8x6c094nlu02vqjllm5m 8.822173651255064e-05\n", - "performed random walks in 0.9220361709594727 seconds\n", - "error pagerank vs mc pagerank in G = 0.020224335435614197\n" + "Total walks performed: 440140\n", + "Don't ₿elieve the Hype 🦊(npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8) 8.164129902339354e-05\n", + "The: Daniel⚡️(npub1aeh2zw4elewy5682lxc6xnlqzjnxksq303gwu2npfaxd49vmde6qcq4nwx) 4.854347509499075e-05\n", + "zach(npub10fu0hlkx3s4n4dsgfu0cpqephga4afr4qtzpz9vsyqf7vj88v2yqdp8vp4) 4.413043190453705e-05\n", + "elsat(npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5) 4.63369534997639e-05\n", + "opreturnbot(npub1e30jt8crv6phnrj22gr3mwuhywrs9lak7ry94akjw0ydm0juptas5xmkwq) 3.0891302333175936e-05\n", + "Seth For Privacy(npub1tr4dstaptd2sp98h7hlysp8qle6mw7wmauhfkgz3rmxdd8ndprusnw2y5g) 4.63369534997639e-05\n", + "JeffG(npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc) 7.722825583293983e-05\n", + "CARLA(npub1hu3hdctm5nkzd8gslnyedfr5ddz3z547jqcl5j88g4fame2jd08qh6h8nh) 7.060869104725928e-05\n", + "Derek Ross(npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424) 8.605434221384724e-05\n", + "DickWhitman(npub102a0auqvye3eayugvfwy44un9l477t45uck8s2p08xzpgh784uvslsh7w9) 2.8684780737949082e-05\n", + "Gutenberg(npub148xfa6g0e6rqxne88vzfwqag43qk8xuugthptgkzp6qencs6ad9s3rzddg) 2.4271737547495376e-05\n", + "Jeff Booth(npub1s05p3ha7en49dv8429tkk07nnfa9pcwczkf5x5qrdraqshxdje9sq6eyhe) 7.502173423771299e-05\n", + "Kanuto(npub1yp7wfa7msdpusf4vupzttttu2mx3cns7whx5cgkt4yr9pkpvujus2mzys7) 3.3097823928402784e-05\n", + "NVK(npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8) 9.70869501899815e-05\n", + "ИΛKΛDΛI(npub1sqaxzwvh5fhgw9q3d7v658ucapvfeds3dcd2587fcwyesn7dnwuqt2r45v) 5.074999669021761e-05\n", + "NunyaBidness(npub1vwymuey3u7mf860ndrkw3r7dz30s0srg6tqmhtjzg7umtm6rn5eq2qzugd) 6.840216945203243e-05\n", + "ODELL(npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx) 9.70869501899815e-05\n", + "Platte(npub1jhgmf58wdd4mwe4t95ffea079kjxc7f62ncg9gdjmwcrmy0x6x8sfd8u8c) 3.0891302333175936e-05\n", + "preston(npub1s5yq6wadwrxde4lhfs56gn64hwzuhnfa6r9mj476r5s4hkunzgzqrs6q7z) 8.384782061862039e-05\n", + "saylor(npub15dqlghlewk84wz3pkqqvzl2w2w36f97g89ljds8x6c094nlu02vqjllm5m) 9.70869501899815e-05\n", + "performed random walks in 16.875550031661987 seconds\n", + "error pagerank vs mc pagerank in G = 0.019704373428918964\n" ] } ], "source": [ - "\n", "\n", "# number of the random walks per node\n", "R = 10\n", @@ -262,10 +261,7 @@ "# perform the random walks and get the monte-carlo pagerank\n", "walk_visited_count, mc_pagerank = get_mc_pagerank(G, R, nodelist)\n", "\n", - "for item in islice(mc_pagerank, show_results_num): \n", - " print(next((PublicKey.parse(pubkey).to_bech32() for pubkey, id in index_map.items() if id == item), None) + \" \" + str(mc_pagerank[item]))\n", - " \n", - "\n", + "await print_results(mc_pagerank, index_map, show_results_num, getmetadata=fetch_metadata)\n", "\n", "toc = time.time()\n", "print(f'performed random walks in {toc-tic} seconds')\n", @@ -289,12 +285,12 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 12, "id": "c00c005e-2064-4975-acb6-3bcf52eb8594", "metadata": { "ExecuteTime": { - "end_time": "2024-07-30T13:25:11.941940Z", - "start_time": "2024-07-30T13:25:11.924618Z" + "end_time": "2024-07-30T14:05:57.760680Z", + "start_time": "2024-07-30T14:05:38.651646Z" } }, "outputs": [ @@ -303,27 +299,27 @@ "output_type": "stream", "text": [ "computing local pagerank...\n", - "npub1w4wzw7kw55f8pn79294336gunrcghj7p93zprjmujwmd7e2ku6wqlctnak 0.0019403122617013325\n", - "npub1z7a4z26ety804299p4p48q5v9mnw0jq68x9tqurzfhn88x95zg3qqrjr5d 0.0019403122617013325\n", - "npub1942jsnasalxfefjevx27g093rucxjjran6vt0t90nvhs7ff74p9s76dsgu 0.0019403122617013325\n", - "npub1w0j5jrhjlxj024ac7mgv0gpf45k2tjsdtrvcmqk33ksc9cnvsqkqmg6fcn 0.0019403122617013325\n", - "npub13eh4qjfnkyc52939wejgrdzur57hcut864wfqe03vquveavrch6sgyds4q 0.0019403122617013325\n", - "npub1gywa7ftf537ry82tmvtqn0tn4vqw567hzv2gux7wyryf93699jhqt3qrws 0.0019403122617013325\n", - "npub187q40r5ymawxz57dxss36h4urxd78mg3zwnl62q5mdpj57tn9xeq74jrlz 0.0021599470503889952\n", - "npub1qlk8uk9dvmzv202uju3t6wpk3skgpreg7szp2zaqt3wslvnkw23sj4ggu5 0.0019403122617013325\n", - "npub1a3kwv96mlffyp6xlg08dlqdxgmh9vl9kjce40q0qk0x5a3hv7hxsch7mft 0.0019403122617013325\n", - "npub1sjes9vqsdnk0qtfkulfvjxp4wgwn9df5fe9xceyfktx2vakle0tq8lyswv 0.0019403122617013325\n", - "npub1qx6kgzfm3z5qlffxnunsgnsaagwcxt6klx6q7gry56arj5r0yl3qgkqf4d 0.0019403122617013325\n", - "npub10xllzv9d6ds4vw4pt7x3y42m44h9qkyp6e9x4rgur8gpfpq08weqdw70vw 0.0019403122617013325\n", - "npub1ra85yapyuzdrwulx6tca6rfdsgeq5zc80f9d00jqv2xqylpkwf2s8ew58r 0.0019403122617013325\n", - "npub1sastsja4ekzlve26ss6mfgxhet3m72j2fad3ngcsfzljzazk7gmsvdfksm 0.002077751046921736\n", - "npub1gampnld2kwqygallrk7ue6gy2hxsxzr6e4jguq94vyn7j8wsx08sj8c60q 0.0019403122617013325\n", - "npub1vflku9lkxpea58j7ykh0l482c6f8atn23nvz6t6q59pcfd2wvpeqvwkt8l 0.0019403122617013325\n", - "npub1w9ek5pzf5yvvs2c5g2cwcm69xk7ermh2x8y9am9xsnk0krqd0rtsdyme5e 0.0019403122617013325\n", - "npub1chkxvn0rw25k07mvsxuwkha67u8mafys2wjch37fzdgqne8c4ltqgf7t3a 0.0019403122617013325\n", - "npub1s04vc7tppyhsvcq5gdrdc42vezvwwfnrzhsd5cskatgtt68f36rq2fwvka 0.0019403122617013325\n", - "npub10ghf4vfsu5uaza8atldrelck96dxn573g2m23j85fhtzfr4500dsvanj4d 0.0019403122617013325\n", - "finished in 0.015357017517089844 seconds\n" + "Robert(npub1zv62e6wxx4lnsnfuwek9xpxlt3ahx6xda7e3zh5w5dkzz5md9lps6ggzf0) 0.0019634124467849253\n", + "aragol7(npub1ptwt040pjt3pd2lx9x0reysshwu5l7t7gtclza94aty3f008y4csut9jy7) 0.0019634124467849253\n", + "Alex Jones(npub1fg38s8xuhn4petadndvekvspkz7vpmdundq4vza5fc4v9el4cd9qwghuct) 0.0019634124467849253\n", + "rohitkumarjain(npub17jp3xlr5quxul9nxh2muhqk5qm76thq974cx4wfvvztav9fejkrqc0w0tj) 0.0019634124467849253\n", + "Feynman(npub19xt4d6epa8xtse8x6wh0fqz0hc5kzu7cwr0677t2kshlrjzs2nzserr5fk) 0.0019634124467849253\n", + "saunter(npub1l3gfsderx4ktqhcmwzgegwatkv9v6fs0hujvlwznje0c90xm7m6qs2s6a5) 0.0019634124467849253\n", + "ACME(npub1pu5x5dmkryc7sp20399lvm6sh9rnp9gydwuc9jug6r88kcq6t85qalqymy) 0.0022018268153709605\n", + "Ali (npub13es8zhzmvmhfa0ekxm74ah94nhall24ke2005kdlkkcwwxlm5qaqpdxfxk) 0.0025831954811405765\n", + "(npub1egw0ecrcyxytmsl7kx2hjmrp2pua354dt2k23mjc8z4g4pwkqqvs68cr06) 0.0019634124467849253\n", + "nekio(npub1hzdf5vjg0hz7yxjvzrtvatv0wcjg52gd6a3ryerv5w79rfj5kzws3yf3mm) 0.0019634124467849253\n", + "rafbe(npub1f4z7l8x59ftwp76zn57uxu5pxvm5ut5r2ppgpxl9wkn6u0l9q87s8hkycf) 0.0019634124467849253\n", + "(npub1vl9m8kpcqrxp4ah462pp78y3rupnags7zf5l72kkzw4n4cyek8es5spupu) 0.002960186365116031\n", + "nobody(npub1elff7suqhwxk32s39z2lvp9sfad6fkewt76ygae2te5c4f283rzsfz2jra) 0.0019634124467849253\n", + "Dunderheid(npub1g3dx4zq6s4qv5n67sgzx6akekhmyggeass2g4qge3kjxpg9cn85qk7clcm) 0.0019634124467849253\n", + "甬男(npub1e9sh3syhmunycmggh4ndu2ajgzcydtuk9yxeltlmmvya7zfnyssqq5zjlt) 0.0019634124467849253\n", + "icota(npub16cyjeutda5599u28nddjfvc3zgjczg8rtp92ln4vpvd4wclegkksecz07g) 0.0019634124467849253\n", + "(npub1dm79u9tmzr5je7jtm5x6w9y5vnevus0plz8jcdj4e4qz72v8jflsxwf4ct) 0.0019634124467849253\n", + "(npub1qrm74fhua2udhzat9ycsw6jwy28t9z48zylv4jgk0nmp24pkak0qkn0nvj) 0.0019634124467849253\n", + "griff(npub1xf0ferksekrc7g9r2atfc8v2za23lx7lklqujq5agwn6lqtfutuqzf3rz8) 0.0019634124467849253\n", + "(npub1srhjym4dngwsgtdf9j3ejhxaf2w8eg2zj8rychzklnray78kmwasq7r8yn) 0.0019634124467849253\n", + "finished in 19.10466504096985 seconds\n" ] } ], @@ -337,10 +333,8 @@ "tic = time.time()\n", "\n", "p_S = nx.pagerank(S, tol=1e-12)\n", + "await print_results(p_S, index_map, show_results_num, getmetadata=fetch_metadata)\n", "\n", - "for item in islice(p_S, show_results_num): \n", - " print(next((PublicKey.parse(pubkey).to_bech32() for pubkey, id in index_map.items() if id == item), None) + \" \" + str(p_S[item]))\n", - " \n", "\n", "toc = time.time()\n", "print(f'finished in {toc-tic} seconds')" @@ -351,56 +345,52 @@ "id": "8eb0ae95-87c1-4f5d-890f-42ff5892d881", "metadata": {}, "source": [ - "## Step 5: Approximate Pagerank over $S$ using Subrank\n", + "## Step 4b: Use integrated functions\n", "\n", "Run the Subrank algorithm to approximate the Pagerank over $S$ subgraph of $G$. Then compute the L1 error." ] }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 14, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "computing subrank over S...\n", - "npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8 7.340804412661138e-05\n", - "npub1aeh2zw4elewy5682lxc6xnlqzjnxksq303gwu2npfaxd49vmde6qcq4nwx 4.826197846937513e-05\n", - "npub10fu0hlkx3s4n4dsgfu0cpqephga4afr4qtzpz9vsyqf7vj88v2yqdp8vp4 3.6176643624020644e-05\n", - "npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5 3.9090310488700045e-05\n", - "npub1e30jt8crv6phnrj22gr3mwuhywrs9lak7ry94akjw0ydm0juptas5xmkwq 2.6394042370260256e-05\n", - "npub1tr4dstaptd2sp98h7hlysp8qle6mw7wmauhfkgz3rmxdd8ndprusnw2y5g 3.747815570363107e-05\n", - "npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc 5.013747945548998e-05\n", - "npub1hu3hdctm5nkzd8gslnyedfr5ddz3z547jqcl5j88g4fame2jd08qh6h8nh 6.260807013551759e-05\n", - "npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424 7.07661040710278e-05\n", - "npub102a0auqvye3eayugvfwy44un9l477t45uck8s2p08xzpgh784uvslsh7w9 3.270039456677615e-05\n", - "npub148xfa6g0e6rqxne88vzfwqag43qk8xuugthptgkzp6qencs6ad9s3rzddg 2.5634274760323094e-05\n", - "npub1s05p3ha7en49dv8429tkk07nnfa9pcwczkf5x5qrdraqshxdje9sq6eyhe 6.456562220321163e-05\n", - "npub1yp7wfa7msdpusf4vupzttttu2mx3cns7whx5cgkt4yr9pkpvujus2mzys7 3.215552366695387e-05\n", - "npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8 7.053654886717582e-05\n", - "npub1sqaxzwvh5fhgw9q3d7v658ucapvfeds3dcd2587fcwyesn7dnwuqt2r45v 4.0600964721155e-05\n", - "npub1vwymuey3u7mf860ndrkw3r7dz30s0srg6tqmhtjzg7umtm6rn5eq2qzugd 4.510949159656128e-05\n", - "npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx 0.00010438144531984322\n", - "npub1jhgmf58wdd4mwe4t95ffea079kjxc7f62ncg9gdjmwcrmy0x6x8sfd8u8c 2.771843675019462e-05\n", - "npub1s5yq6wadwrxde4lhfs56gn64hwzuhnfa6r9mj476r5s4hkunzgzqrs6q7z 6.66918997774174e-05\n", - "npub15dqlghlewk84wz3pkqqvzl2w2w36f97g89ljds8x6c094nlu02vqjllm5m 6.681343999041084e-05\n", - "performed random walks in -4.498226881027222 seconds\n", - "error pagerank vs subrank in S = 0.9885830593763663\n" + "computing inteegrated pagerang function\n", + "Don't ₿elieve the Hype 🦊(npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8) 7.33073810886042e-05\n", + "The: Daniel⚡️(npub1aeh2zw4elewy5682lxc6xnlqzjnxksq303gwu2npfaxd49vmde6qcq4nwx) 4.82284734499105e-05\n", + "zach(npub10fu0hlkx3s4n4dsgfu0cpqephga4afr4qtzpz9vsyqf7vj88v2yqdp8vp4) 3.6096112371534015e-05\n", + "elsat(npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5) 3.932073936226785e-05\n", + "opreturnbot(npub1e30jt8crv6phnrj22gr3mwuhywrs9lak7ry94akjw0ydm0juptas5xmkwq) 2.6532755448179916e-05\n", + "Seth For Privacy(npub1tr4dstaptd2sp98h7hlysp8qle6mw7wmauhfkgz3rmxdd8ndprusnw2y5g) 3.7662079240686915e-05\n", + "JeffG(npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc) 5.037600211657074e-05\n", + "CARLA(npub1hu3hdctm5nkzd8gslnyedfr5ddz3z547jqcl5j88g4fame2jd08qh6h8nh) 6.244046482882089e-05\n", + "Derek Ross(npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424) 7.071551628113585e-05\n", + "DickWhitman(npub102a0auqvye3eayugvfwy44un9l477t45uck8s2p08xzpgh784uvslsh7w9) 3.2614318807201426e-05\n", + "Gutenberg(npub148xfa6g0e6rqxne88vzfwqag43qk8xuugthptgkzp6qencs6ad9s3rzddg) 2.555216772659302e-05\n", + "Jeff Booth(npub1s05p3ha7en49dv8429tkk07nnfa9pcwczkf5x5qrdraqshxdje9sq6eyhe) 6.4400793810946e-05\n", + "Kanuto(npub1yp7wfa7msdpusf4vupzttttu2mx3cns7whx5cgkt4yr9pkpvujus2mzys7) 3.209949445351193e-05\n", + "NVK(npub1az9xj85cmxv8e9j9y80lvqp97crsqdu2fpu3srwthd99qfu9qsgstam8y8) 7.061206554109254e-05\n", + "ИΛKΛDΛI(npub1sqaxzwvh5fhgw9q3d7v658ucapvfeds3dcd2587fcwyesn7dnwuqt2r45v) 4.055409483359867e-05\n", + "NunyaBidness(npub1vwymuey3u7mf860ndrkw3r7dz30s0srg6tqmhtjzg7umtm6rn5eq2qzugd) 4.5094809254399846e-05\n", + "ODELL(npub1qny3tkh0acurzla8x3zy4nhrjz5zd8l9sy9jys09umwng00manysew95gx) 8.515245131214811e-05\n", + "Platte(npub1jhgmf58wdd4mwe4t95ffea079kjxc7f62ncg9gdjmwcrmy0x6x8sfd8u8c) 2.7728750667446487e-05\n", + "preston(npub1s5yq6wadwrxde4lhfs56gn64hwzuhnfa6r9mj476r5s4hkunzgzqrs6q7z) 6.665485620723231e-05\n", + "saylor(npub15dqlghlewk84wz3pkqqvzl2w2w36f97g89ljds8x6c094nlu02vqjllm5m) 6.688756088914574e-05\n", + "performed random walks in -72.14416885375977 seconds\n", + "error pagerank vs subrank in S = 0.9886733121143664\n" ] } ], "source": [ "# computing subrank\n", - "print('computing subrank over S...')\n", + "print('computing integrated pagerang function')\n", "tic = time.time()\n", "\n", "pr = nx.pagerank(G)\n", - "for item in islice(pr, show_results_num): \n", - " print(next((PublicKey.parse(pubkey).to_bech32() for pubkey, id in index_map.items() if id == item), None) + \" \" + str(pr[item]))\n", - " \n", - "\n", - "\n", + "await print_results(pr, index_map, show_results_num, getmetadata=fetch_metadata)\n", "print(f'performed random walks in {toc-tic} seconds')\n", "\n", "# computing the L1 error\n", @@ -412,20 +402,20 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-07-30T13:25:17.347659Z", - "start_time": "2024-07-30T13:25:16.473516Z" + "end_time": "2024-07-30T14:07:28.145678Z", + "start_time": "2024-07-30T14:07:09.900257Z" } }, "id": "98adf91155b2429b" }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 15, "id": "41637e2b-1998-43ff-9811-a7bbe658d742", "metadata": { "ExecuteTime": { - "end_time": "2024-07-30T13:25:18.693412Z", - "start_time": "2024-07-30T13:25:18.627987Z" + "end_time": "2024-07-30T14:07:43.572005Z", + "start_time": "2024-07-30T14:07:30.074996Z" } }, "outputs": [ @@ -434,29 +424,30 @@ "output_type": "stream", "text": [ "computing subrank over S...\n", - "walks performed = 118\n", - "npub1w4wzw7kw55f8pn79294336gunrcghj7p93zprjmujwmd7e2ku6wqlctnak 0.0019409937888198758\n", - "npub1z7a4z26ety804299p4p48q5v9mnw0jq68x9tqurzfhn88x95zg3qqrjr5d 0.0019409937888198758\n", - "npub1942jsnasalxfefjevx27g093rucxjjran6vt0t90nvhs7ff74p9s76dsgu 0.0019409937888198758\n", - "npub1w0j5jrhjlxj024ac7mgv0gpf45k2tjsdtrvcmqk33ksc9cnvsqkqmg6fcn 0.0019409937888198758\n", - "npub13eh4qjfnkyc52939wejgrdzur57hcut864wfqe03vquveavrch6sgyds4q 0.0019409937888198758\n", - "npub1gywa7ftf537ry82tmvtqn0tn4vqw567hzv2gux7wyryf93699jhqt3qrws 0.0019409937888198758\n", - "npub187q40r5ymawxz57dxss36h4urxd78mg3zwnl62q5mdpj57tn9xeq74jrlz 0.0021350931677018635\n", - "npub1qlk8uk9dvmzv202uju3t6wpk3skgpreg7szp2zaqt3wslvnkw23sj4ggu5 0.0019409937888198758\n", - "npub1a3kwv96mlffyp6xlg08dlqdxgmh9vl9kjce40q0qk0x5a3hv7hxsch7mft 0.0019409937888198758\n", - "npub1sjes9vqsdnk0qtfkulfvjxp4wgwn9df5fe9xceyfktx2vakle0tq8lyswv 0.0019409937888198758\n", - "npub1qx6kgzfm3z5qlffxnunsgnsaagwcxt6klx6q7gry56arj5r0yl3qgkqf4d 0.0019409937888198758\n", - "npub10xllzv9d6ds4vw4pt7x3y42m44h9qkyp6e9x4rgur8gpfpq08weqdw70vw 0.0019409937888198758\n", - "npub1ra85yapyuzdrwulx6tca6rfdsgeq5zc80f9d00jqv2xqylpkwf2s8ew58r 0.0019409937888198758\n", - "npub1sastsja4ekzlve26ss6mfgxhet3m72j2fad3ngcsfzljzazk7gmsvdfksm 0.0021350931677018635\n", - "npub1gampnld2kwqygallrk7ue6gy2hxsxzr6e4jguq94vyn7j8wsx08sj8c60q 0.0019409937888198758\n", - "npub1vflku9lkxpea58j7ykh0l482c6f8atn23nvz6t6q59pcfd2wvpeqvwkt8l 0.0019409937888198758\n", - "npub1w9ek5pzf5yvvs2c5g2cwcm69xk7ermh2x8y9am9xsnk0krqd0rtsdyme5e 0.0019409937888198758\n", - "npub1chkxvn0rw25k07mvsxuwkha67u8mafys2wjch37fzdgqne8c4ltqgf7t3a 0.0019409937888198758\n", - "npub1s04vc7tppyhsvcq5gdrdc42vezvwwfnrzhsd5cskatgtt68f36rq2fwvka 0.0019409937888198758\n", - "npub10ghf4vfsu5uaza8atldrelck96dxn573g2m23j85fhtzfr4500dsvanj4d 0.0019409937888198758\n", - "performed random walks in -6.684823989868164 seconds\n", - "error pagerank vs subrank in S = 0.007424393194423837\n" + "walks performed = 75\n", + "Robert(npub1zv62e6wxx4lnsnfuwek9xpxlt3ahx6xda7e3zh5w5dkzz5md9lps6ggzf0) 0.0019623233908948193\n", + "aragol7(npub1ptwt040pjt3pd2lx9x0reysshwu5l7t7gtclza94aty3f008y4csut9jy7) 0.0019623233908948193\n", + "Alex Jones(npub1fg38s8xuhn4petadndvekvspkz7vpmdundq4vza5fc4v9el4cd9qwghuct) 0.0019623233908948193\n", + "rohitkumarjain(npub17jp3xlr5quxul9nxh2muhqk5qm76thq974cx4wfvvztav9fejkrqc0w0tj) 0.0019623233908948193\n", + "Feynman(npub19xt4d6epa8xtse8x6wh0fqz0hc5kzu7cwr0677t2kshlrjzs2nzserr5fk) 0.0019623233908948193\n", + "saunter(npub1l3gfsderx4ktqhcmwzgegwatkv9v6fs0hujvlwznje0c90xm7m6qs2s6a5) 0.0019623233908948193\n", + "ACME(npub1pu5x5dmkryc7sp20399lvm6sh9rnp9gydwuc9jug6r88kcq6t85qalqymy) 0.0021585557299843012\n", + "Ali (npub13es8zhzmvmhfa0ekxm74ah94nhall24ke2005kdlkkcwwxlm5qaqpdxfxk) 0.002551020408163265\n", + "(npub1egw0ecrcyxytmsl7kx2hjmrp2pua354dt2k23mjc8z4g4pwkqqvs68cr06) 0.0019623233908948193\n", + "nekio(npub1hzdf5vjg0hz7yxjvzrtvatv0wcjg52gd6a3ryerv5w79rfj5kzws3yf3mm) 0.0019623233908948193\n", + "rafbe(npub1f4z7l8x59ftwp76zn57uxu5pxvm5ut5r2ppgpxl9wkn6u0l9q87s8hkycf) 0.0019623233908948193\n", + "(npub1vl9m8kpcqrxp4ah462pp78y3rupnags7zf5l72kkzw4n4cyek8es5spupu) 0.0027472527472527475\n", + "nobody(npub1elff7suqhwxk32s39z2lvp9sfad6fkewt76ygae2te5c4f283rzsfz2jra) 0.0019623233908948193\n", + "Dunderheid(npub1g3dx4zq6s4qv5n67sgzx6akekhmyggeass2g4qge3kjxpg9cn85qk7clcm) 0.0019623233908948193\n", + "甬男(npub1e9sh3syhmunycmggh4ndu2ajgzcydtuk9yxeltlmmvya7zfnyssqq5zjlt) 0.0019623233908948193\n", + "icota(npub16cyjeutda5599u28nddjfvc3zgjczg8rtp92ln4vpvd4wclegkksecz07g) 0.0019623233908948193\n", + "(npub1dm79u9tmzr5je7jtm5x6w9y5vnevus0plz8jcdj4e4qz72v8jflsxwf4ct) 0.0019623233908948193\n", + "(npub1qrm74fhua2udhzat9ycsw6jwy28t9z48zylv4jgk0nmp24pkak0qkn0nvj) 0.0019623233908948193\n", + "griff(npub1xf0ferksekrc7g9r2atfc8v2za23lx7lklqujq5agwn6lqtfutuqzf3rz8) 0.0019623233908948193\n", + "(npub1srhjym4dngwsgtdf9j3ejhxaf2w8eg2zj8rychzklnray78kmwasq7r8yn) 0.0019623233908948193\n", + "performed random walks in -92.26541304588318 seconds\n", + "performed random walks in -92.26541304588318 seconds\n", + "error pagerank vs subrank in S = 0.004822184121875954\n" ] } ], @@ -466,11 +457,9 @@ "tic = time.time()\n", "\n", "subrank = get_subrank(S, G, walk_visited_count, nodelist)\n", - "for item in islice(subrank, show_results_num): \n", - " print(next((PublicKey.parse(pubkey).to_bech32() for pubkey, id in index_map.items() if id == item), None) + \" \" + str(subrank[item]))\n", + "await print_results(subrank, index_map, show_results_num, getmetadata=fetch_metadata)\n", " \n", - "\n", - "\n", + "print(f'performed random walks in {toc-tic} seconds')\n", "print(f'performed random walks in {toc-tic} seconds')\n", "\n", "# computing the L1 error\n", @@ -492,12 +481,12 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 16, "id": "14907960-116b-405d-9f73-85e625958050", "metadata": { "ExecuteTime": { - "end_time": "2024-07-30T13:25:21.359765Z", - "start_time": "2024-07-30T13:25:21.329Z" + "end_time": "2024-07-30T14:08:12.513807Z", + "start_time": "2024-07-30T14:07:53.683940Z" } }, "outputs": [ @@ -508,42 +497,40 @@ "computing naive monte-carlo pagerank over S\n", "progress = 100% \r\n", "Total walks performed: 5000\n", - "npub1w4wzw7kw55f8pn79294336gunrcghj7p93zprjmujwmd7e2ku6wqlctnak 0.0019372336303758234\n", - "npub1z7a4z26ety804299p4p48q5v9mnw0jq68x9tqurzfhn88x95zg3qqrjr5d 0.0019372336303758234\n", - "npub1942jsnasalxfefjevx27g093rucxjjran6vt0t90nvhs7ff74p9s76dsgu 0.0019372336303758234\n", - "npub1w0j5jrhjlxj024ac7mgv0gpf45k2tjsdtrvcmqk33ksc9cnvsqkqmg6fcn 0.0019372336303758234\n", - "npub13eh4qjfnkyc52939wejgrdzur57hcut864wfqe03vquveavrch6sgyds4q 0.0019372336303758234\n", - "npub1gywa7ftf537ry82tmvtqn0tn4vqw567hzv2gux7wyryf93699jhqt3qrws 0.0019372336303758234\n", - "npub187q40r5ymawxz57dxss36h4urxd78mg3zwnl62q5mdpj57tn9xeq74jrlz 0.0019372336303758234\n", - "npub1qlk8uk9dvmzv202uju3t6wpk3skgpreg7szp2zaqt3wslvnkw23sj4ggu5 0.0019372336303758234\n", - "npub1a3kwv96mlffyp6xlg08dlqdxgmh9vl9kjce40q0qk0x5a3hv7hxsch7mft 0.0019372336303758234\n", - "npub1sjes9vqsdnk0qtfkulfvjxp4wgwn9df5fe9xceyfktx2vakle0tq8lyswv 0.0019372336303758234\n", - "npub1qx6kgzfm3z5qlffxnunsgnsaagwcxt6klx6q7gry56arj5r0yl3qgkqf4d 0.0019372336303758234\n", - "npub10xllzv9d6ds4vw4pt7x3y42m44h9qkyp6e9x4rgur8gpfpq08weqdw70vw 0.0019372336303758234\n", - "npub1ra85yapyuzdrwulx6tca6rfdsgeq5zc80f9d00jqv2xqylpkwf2s8ew58r 0.0019372336303758234\n", - "npub1sastsja4ekzlve26ss6mfgxhet3m72j2fad3ngcsfzljzazk7gmsvdfksm 0.0019372336303758234\n", - "npub1gampnld2kwqygallrk7ue6gy2hxsxzr6e4jguq94vyn7j8wsx08sj8c60q 0.0019372336303758234\n", - "npub1vflku9lkxpea58j7ykh0l482c6f8atn23nvz6t6q59pcfd2wvpeqvwkt8l 0.0019372336303758234\n", - "npub1w9ek5pzf5yvvs2c5g2cwcm69xk7ermh2x8y9am9xsnk0krqd0rtsdyme5e 0.0019372336303758234\n", - "npub1chkxvn0rw25k07mvsxuwkha67u8mafys2wjch37fzdgqne8c4ltqgf7t3a 0.0019372336303758234\n", - "npub1s04vc7tppyhsvcq5gdrdc42vezvwwfnrzhsd5cskatgtt68f36rq2fwvka 0.0019372336303758234\n", - "npub10ghf4vfsu5uaza8atldrelck96dxn573g2m23j85fhtzfr4500dsvanj4d 0.0019372336303758234\n", - "finished in 0.030786752700805664 seconds\n", - "error pagerank vs mc pagerank in S = 0.016528733598008816\n" + "Robert(npub1zv62e6wxx4lnsnfuwek9xpxlt3ahx6xda7e3zh5w5dkzz5md9lps6ggzf0) 0.0019654088050314465\n", + "aragol7(npub1ptwt040pjt3pd2lx9x0reysshwu5l7t7gtclza94aty3f008y4csut9jy7) 0.0019654088050314465\n", + "Alex Jones(npub1fg38s8xuhn4petadndvekvspkz7vpmdundq4vza5fc4v9el4cd9qwghuct) 0.0019654088050314465\n", + "rohitkumarjain(npub17jp3xlr5quxul9nxh2muhqk5qm76thq974cx4wfvvztav9fejkrqc0w0tj) 0.0019654088050314465\n", + "Feynman(npub19xt4d6epa8xtse8x6wh0fqz0hc5kzu7cwr0677t2kshlrjzs2nzserr5fk) 0.0019654088050314465\n", + "saunter(npub1l3gfsderx4ktqhcmwzgegwatkv9v6fs0hujvlwznje0c90xm7m6qs2s6a5) 0.0019654088050314465\n", + "ACME(npub1pu5x5dmkryc7sp20399lvm6sh9rnp9gydwuc9jug6r88kcq6t85qalqymy) 0.0019654088050314465\n", + "Ali (npub13es8zhzmvmhfa0ekxm74ah94nhall24ke2005kdlkkcwwxlm5qaqpdxfxk) 0.0033411949685534592\n", + "(npub1egw0ecrcyxytmsl7kx2hjmrp2pua354dt2k23mjc8z4g4pwkqqvs68cr06) 0.0019654088050314465\n", + "nekio(npub1hzdf5vjg0hz7yxjvzrtvatv0wcjg52gd6a3ryerv5w79rfj5kzws3yf3mm) 0.0019654088050314465\n", + "rafbe(npub1f4z7l8x59ftwp76zn57uxu5pxvm5ut5r2ppgpxl9wkn6u0l9q87s8hkycf) 0.0019654088050314465\n", + "(npub1vl9m8kpcqrxp4ah462pp78y3rupnags7zf5l72kkzw4n4cyek8es5spupu) 0.002358490566037736\n", + "nobody(npub1elff7suqhwxk32s39z2lvp9sfad6fkewt76ygae2te5c4f283rzsfz2jra) 0.0019654088050314465\n", + "Dunderheid(npub1g3dx4zq6s4qv5n67sgzx6akekhmyggeass2g4qge3kjxpg9cn85qk7clcm) 0.0019654088050314465\n", + "甬男(npub1e9sh3syhmunycmggh4ndu2ajgzcydtuk9yxeltlmmvya7zfnyssqq5zjlt) 0.0019654088050314465\n", + "icota(npub16cyjeutda5599u28nddjfvc3zgjczg8rtp92ln4vpvd4wclegkksecz07g) 0.0019654088050314465\n", + "(npub1dm79u9tmzr5je7jtm5x6w9y5vnevus0plz8jcdj4e4qz72v8jflsxwf4ct) 0.0019654088050314465\n", + "(npub1qrm74fhua2udhzat9ycsw6jwy28t9z48zylv4jgk0nmp24pkak0qkn0nvj) 0.0019654088050314465\n", + "griff(npub1xf0ferksekrc7g9r2atfc8v2za23lx7lklqujq5agwn6lqtfutuqzf3rz8) 0.0019654088050314465\n", + "(npub1srhjym4dngwsgtdf9j3ejhxaf2w8eg2zj8rychzklnray78kmwasq7r8yn) 0.0019654088050314465\n", + "finished in 18.817513942718506 seconds\n", + "error pagerank vs mc pagerank in S = 0.00972193209444151\n" ] } ], "source": [ + "\n", "# computing the monte-carlo pagerank \n", "print('computing naive monte-carlo pagerank over S')\n", "tic = time.time()\n", "\n", "_, mc_pagerank_S_naive = get_mc_pagerank(S,R)\n", "\n", - "for item in islice(mc_pagerank_S_naive, show_results_num): \n", - " print(next((PublicKey.parse(pubkey).to_bech32() for pubkey, id in index_map.items() if id == item), None) + \" \" + str(mc_pagerank_S_naive[item]))\n", - " \n", - "\n", + "await print_results(mc_pagerank_S_naive, index_map, show_results_num, getmetadata=fetch_metadata)\n", "\n", "\n", "toc = time.time()\n", @@ -555,6 +542,16 @@ "\n", "print(f'error pagerank vs mc pagerank in S = {error_S_naive}')" ] + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + }, + "id": "c000a6be0e1a6c0b" } ], "metadata": {