1
0
Fork 0
forked from mCaptcha/website
This commit is contained in:
realaravinth 2021-09-01 08:58:09 +00:00
parent bc27fb0928
commit edba9338dc
5 changed files with 7 additions and 7 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
<!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.d731b24f97a905b851b9151339aca0f6a9b1c45ed16584cee7a4113d98d2a3db570c096603fbf15fbe9bbf092715cc742abaea351b4767239dbfedfffc08ebdb.css integrity="sha512-1zGyT5epBbhRuRUTOayg9qmxxF7RZYTO56QRPZjSo9tXDAlmA/vxX76bvwknFcx0KrrqNRtHZyOdv+3//Ajr2w==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>PoW performance - mCaptcha</title><meta name=description content="PoW performance of native and WASM implementations. Does the native implementation have and edge over the WASM library?"><link rel=canonical href=/blog/pow-performance/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/blog/pow-performance/icon.png"><meta name=twitter:title content="PoW performance"><meta name=twitter:description content="PoW performance of native and WASM implementations. Does the native implementation have and edge over the WASM library?"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="PoW performance"><meta property="og:description" content="PoW performance of native and WASM implementations. Does the native implementation have and edge over the WASM library?"><meta property="og:type" content="article"><meta property="og:url" content="/blog/pow-performance/"><meta property="og:image" content="/blog/pow-performance/icon.png"><meta property="article:published_time" content="2021-05-26T00:00:00+00:00"><meta property="article:modified_time" content="2021-09-01T13:46:31+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Blogpow Performance","item":"\/blogpow-performance\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="blog single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn> <!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.d731b24f97a905b851b9151339aca0f6a9b1c45ed16584cee7a4113d98d2a3db570c096603fbf15fbe9bbf092715cc742abaea351b4767239dbfedfffc08ebdb.css integrity="sha512-1zGyT5epBbhRuRUTOayg9qmxxF7RZYTO56QRPZjSo9tXDAlmA/vxX76bvwknFcx0KrrqNRtHZyOdv+3//Ajr2w==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>PoW performance - mCaptcha</title><meta name=description content="PoW performance of native and WASM implementations. Does the native implementation have and edge over the WASM library?"><link rel=canonical href=/blog/pow-performance/><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="/blog/pow-performance/icon.png"><meta name=twitter:title content="PoW performance"><meta name=twitter:description content="PoW performance of native and WASM implementations. Does the native implementation have and edge over the WASM library?"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="PoW performance"><meta property="og:description" content="PoW performance of native and WASM implementations. Does the native implementation have and edge over the WASM library?"><meta property="og:type" content="article"><meta property="og:url" content="/blog/pow-performance/"><meta property="og:image" content="/blog/pow-performance/icon.png"><meta property="article:published_time" content="2021-05-26T00:00:00+00:00"><meta property="article:modified_time" content="2021-09-01T14:27:17+05:30"><meta property="og:site_name" content="mCaptcha"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content="en_US"><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Blogpow Performance","item":"\/blogpow-performance\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest></head><body class="blog single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a> <label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 me-auto" href=/>mCaptcha</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode"> <button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/docs/prologue/introduction/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#benchmark-tools>Benchmark tools</a></li><li><a href=#results>Results</a><ul><li><a href=#native>Native</a></li><li><a href=#browser>Browser</a></li><li><a href=#firefox>Firefox</a></li></ul></li><li><a href=#conclusion>Conclusion</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9 mx-xl-auto"><article><div class=blog-header><h1>PoW performance</h1><p><small>Posted May 26, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>3&nbsp;min read</strong></small><p><p><small>Last Edited September 1, 2021</small><p></div><p class=lead>We are mCaptcha. We build kickass CAPTCHA systems that gives (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p>mCaptcha uses a <span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://github.com/mCaptcha><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/about/>About</a></li><li class="nav-item active"><a class=nav-link href=/blog/>Blog</a></li><li class=nav-item><a class=nav-link href=/community/>Community</a></li><li class=nav-item><a class=nav-link href=/contact/>Contact</a></li><li class=nav-item><a class=nav-link href=/docs/prologue/introduction/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#benchmark-tools>Benchmark tools</a></li><li><a href=#results>Results</a><ul><li><a href=#native>Native</a></li><li><a href=#browser>Browser</a></li><li><a href=#firefox>Firefox</a></li></ul></li><li><a href=#conclusion>Conclusion</a></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9 mx-xl-auto"><article><div class=blog-header><h1>PoW performance</h1><p><small>Posted May 26, 2021 by <a class="stretched-link position-relative" href=/contributors/aravinth-manivannan/>Aravinth Manivannan</a>&nbsp;&dash;&nbsp;<strong>2&nbsp;min read</strong></small><p><p><small>Last Edited September 1, 2021</small><p></div><p class=lead>We are mCaptcha. We build kickass CAPTCHA systems that gives (DDoS) attackers a run for their money. And we do all of this without tracking your users. Oh and did I mention our UX is great?</p><p>mCaptcha uses a
<a href=https://en.wikipedia.org/wiki/Proof_of_work>proof-of-work(PoW)</a> mechanism <a href=https://en.wikipedia.org/wiki/Proof_of_work>proof-of-work(PoW)</a> mechanism
to rate limit users or potential bots. In order for this to be to rate limit users or potential bots. In order for this to be
effective, the PoW should be configured properly. The difficulty effective, the PoW should be configured properly. The difficulty
@ -12,7 +12,7 @@ capable of running in a multi-threaded context. This creates an unfair
advantage for crackers using these bots over legitimate users, who advantage for crackers using these bots over legitimate users, who
usually use browsers to access a website.</p><p>I wanted to see how much of an advantage a native program would have usually use browsers to access a website.</p><p>I wanted to see how much of an advantage a native program would have
over our WASM library.</p><h2 id=benchmark-tools>Benchmark tools</h2><p>So I wrote these to compare native and WASM performances:</p><ul><li>Browser benchmark: <a href=https://mCaptcha.github.io/benches>https://mCaptcha.github.io/benches</a></li><li>Native benchmark: <a href=https://github.com/mCaptcha/cli/blob/master/scripts/bench.sh>mCaptcha/cli managed by scripts/bench.sh</a></li></ul><div class="alert alert-warning d-flex" role=alert><div class="flex-shrink-1 alert-icon"></div><div class=w-100>Feel free to reproduce the results!</div></div><h2 id=results>Results</h2><p>The tests were run on my development machine featuring an Intel Core over our WASM library.</p><h2 id=benchmark-tools>Benchmark tools</h2><p>So I wrote these to compare native and WASM performances:</p><ul><li>Browser benchmark: <a href=https://mCaptcha.github.io/benches>https://mCaptcha.github.io/benches</a></li><li>Native benchmark: <a href=https://github.com/mCaptcha/cli/blob/master/scripts/bench.sh>mCaptcha/cli managed by scripts/bench.sh</a></li></ul><div class="alert alert-warning d-flex" role=alert><div class="flex-shrink-1 alert-icon"></div><div class=w-100>Feel free to reproduce the results!</div></div><h2 id=results>Results</h2><p>The tests were run on my development machine featuring an Intel Core
i7-9750h.</p><h3 id=native>Native</h3><table><thead><tr><th>Difficulty</th><th>Real</th><th>User</th><th>Sys</th></tr></thead><tbody><tr><td>50000</td><td>0m0.040s</td><td>0m0.040s</td><td>0m0.000s</td></tr><tr><td>300000</td><td>0m0.122s</td><td>0m0.122s</td><td>0m0.000s</td></tr><tr><td>550000</td><td>0m0.124s</td><td>0m0.119s</td><td>0m0.003s</td></tr><tr><td>800000</td><td>0m0.123s</td><td>0m0.118s</td><td>0m0.003s</td></tr><tr><td>1050000</td><td>0m0.933s</td><td>0m0.932s</td><td>0m0.000s</td></tr><tr><td>1300000</td><td>0m1.227s</td><td>-</td><td>0m0.007s</td></tr><tr><td>1550000</td><td>0m1.260s</td><td>0m1.256s</td><td>0m0.003s</td></tr><tr><td>1800000</td><td>0m1.243s</td><td>0m1.242s</td><td>0m0.000s</td></tr><tr><td>2050000</td><td>0m2.524s</td><td>0m2.510s</td><td>0m0.000s</td></tr><tr><td>2300000</td><td>0m2.545s</td><td>0m2.543s</td><td>0m0.000s</td></tr><tr><td>2550000</td><td>0m2.561s</td><td>0m2.551s</td><td>0m0.004s</td></tr><tr><td>2800000</td><td>0m2.555s</td><td>0m2.540s</td><td>0m0.006s</td></tr><tr><td>3050000</td><td>0m2.513s</td><td>0m2.508s</td><td>0m0.000s</td></tr><tr><td>3300000</td><td>0m2.484s</td><td>0m2.481s</td><td>0m0.000s</td></tr><tr><td>3550000</td><td>0m2.643s</td><td>0m2.642s</td><td>0m0.000s</td></tr><tr><td>3800000</td><td>0m2.663s</td><td>0m2.661s</td><td>0m0.000s</td></tr><tr><td>4050000</td><td>0m2.663s</td><td>0m2.660s</td><td>0m0.000s</td></tr><tr><td>4300000</td><td>0m2.689s</td><td>0m2.683s</td><td>0m0.004s</td></tr><tr><td>4550000</td><td>0m2.688s</td><td>0m2.686s</td><td>0m0.000s</td></tr><tr><td>4800000</td><td>0m2.517s</td><td>0m2.509s</td><td>0m0.003s</td></tr></tbody></table><h3 id=browser>Browser</h3><p>I ran the tests on both Firefox and Chromium to compare results</p><h3 id=firefox>Firefox</h3><ul><li><strong>User Agent:</strong> <code>Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0</code></li><li><strong>Hardware concurrency:</strong> 12</li></ul><table><thead><tr><th>Difficulty</th><th>Duration(in ms)</th></tr></thead><tbody><tr><td>500000</td><td>401</td></tr><tr><td>1000000</td><td>413</td></tr><tr><td>1500000</td><td>398</td></tr><tr><td>2000000</td><td>394</td></tr><tr><td>2500000</td><td>1495</td></tr><tr><td>3000000</td><td>1556</td></tr><tr><td>3500000</td><td>3971</td></tr><tr><td>4000000</td><td>4235</td></tr><tr><td>4500000</td><td>4116</td></tr></tbody></table><blockquote><p>To be fair, my Firefox installation is loaded with a gazillion i7-9750h.</p><h3 id=native>Native</h3><table><thead><tr><th>Difficulty</th><th>Real</th><th>User</th><th>Sys</th></tr></thead><tbody><tr><td>500000</td><td>0m0.220s</td><td>0m0.197s</td><td>0m0.006s</td></tr><tr><td>1000000</td><td>0m0.203s</td><td>0m0.203s</td><td>0m0.000s</td></tr><tr><td>1500000</td><td>0m0.198s</td><td>0m0.198s</td><td>0m0.000s</td></tr><tr><td>2000000</td><td>0m0.203s</td><td>0m0.203s</td><td>0m0.000s</td></tr><tr><td>2500000</td><td>0m0.758s</td><td>0m0.752s</td><td>0m0.003s</td></tr><tr><td>3000000</td><td>0m0.776s</td><td>0m0.769s</td><td>0m0.003s</td></tr><tr><td>3500000</td><td>0m2.010s</td><td>0m1.998s</td><td>0m0.000s</td></tr><tr><td>4000000</td><td>0m2.038s</td><td>0m2.033s</td><td>0m0.003s</td></tr><tr><td>4500000</td><td>0m2.014s</td><td>0m2.013s</td><td>0m0.000s</td></tr></tbody></table><h3 id=browser>Browser</h3><p>I ran the tests on both Firefox and Chromium to compare results</p><h3 id=firefox>Firefox</h3><ul><li><strong>User Agent:</strong> <code>Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0</code></li><li><strong>Hardware concurrency:</strong> 12</li></ul><table><thead><tr><th>Difficulty</th><th>Duration(in ms)</th></tr></thead><tbody><tr><td>500000</td><td>401</td></tr><tr><td>1000000</td><td>413</td></tr><tr><td>1500000</td><td>398</td></tr><tr><td>2000000</td><td>394</td></tr><tr><td>2500000</td><td>1495</td></tr><tr><td>3000000</td><td>1556</td></tr><tr><td>3500000</td><td>3971</td></tr><tr><td>4000000</td><td>4235</td></tr><tr><td>4500000</td><td>4116</td></tr></tbody></table><blockquote><p>To be fair, my Firefox installation is loaded with a gazillion
extensions while the Chromium instance is clean, as I don&rsquo;t use it extensions while the Chromium instance is clean, as I don&rsquo;t use it
much</p></blockquote><h4 id=chromium>Chromium</h4><ul><li><strong>User Agent:</strong> <code>Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36</code></li><li><strong>Hardware concurrency:</strong> 12</li></ul><table><thead><tr><th>Difficulty</th><th>Duration(in ms)</th></tr></thead><tbody><tr><td>500000</td><td>399.40000000037253</td></tr><tr><td>1000000</td><td>354.6000000014901</td></tr><tr><td>1500000</td><td>351.19999999925494</td></tr><tr><td>2000000</td><td>353.80000000074506</td></tr><tr><td>2500000</td><td>1337.800000000745</td></tr><tr><td>3000000</td><td>1311.199999999255</td></tr><tr><td>3500000</td><td>3417.5999999996275</td></tr><tr><td>4000000</td><td>3488.800000000745</td></tr><tr><td>4500000</td><td>3458.2999999988824</td></tr></tbody></table><h2 id=conclusion>Conclusion</h2><p>At the highest difficulty factor, the native implementation was a almost second much</p></blockquote><h4 id=chromium>Chromium</h4><ul><li><strong>User Agent:</strong> <code>Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36</code></li><li><strong>Hardware concurrency:</strong> 12</li></ul><table><thead><tr><th>Difficulty</th><th>Duration(in ms)</th></tr></thead><tbody><tr><td>500000</td><td>399.40000000037253</td></tr><tr><td>1000000</td><td>354.6000000014901</td></tr><tr><td>1500000</td><td>351.19999999925494</td></tr><tr><td>2000000</td><td>353.80000000074506</td></tr><tr><td>2500000</td><td>1337.800000000745</td></tr><tr><td>3000000</td><td>1311.199999999255</td></tr><tr><td>3500000</td><td>3417.5999999996275</td></tr><tr><td>4000000</td><td>3488.800000000745</td></tr><tr><td>4500000</td><td>3458.2999999988824</td></tr></tbody></table><h2 id=conclusion>Conclusion</h2><p>At the highest difficulty factor, the native implementation was a almost second
faster than the WASM library. But the fact that both of them were able faster than the WASM library. But the fact that both of them were able

View file

@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/pow-performance/</loc><lastmod>2021-09-01T13:46:31+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/blog/say-hello-to-mcaptcha/</loc><lastmod>2021-05-27T18:12:01+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> <?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/pow-performance/</loc><lastmod>2021-09-01T14:27:17+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/blog/say-hello-to-mcaptcha/</loc><lastmod>2021-05-27T18:12:01+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/pow-performance/</loc><lastmod>2021-09-01T13:46:31+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/blog/say-hello-to-mcaptcha/</loc><lastmod>2021-05-27T18:12:01+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/api/mcaptcha-system/</loc><lastmod>2021-04-10T17:08:46+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/getting-started/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/prologue/introduction/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/api/browser/</loc><lastmod>2021-03-11T11:29:26+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/docker/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/bare-metal/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/api/pow-sha256/</loc><lastmod>2021-04-01T22:58:38+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/dependencies/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/help/troubleshooting/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/help/faq/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/about/</loc><lastmod>2021-05-27T16:28:59+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/donate/</loc><lastmod>2021-07-16T21:58:39+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/contributors/aravinth-manivannan/</loc><lastmod>2021-05-26T14:18:41+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/contributors/</loc><lastmod>2021-05-26T14:18:41+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/privacy-policy/</loc><lastmod>2021-05-27T19:15:04+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/community/</loc><lastmod>2021-05-27T18:12:01+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/security/</loc><lastmod>2021-05-27T19:15:04+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/thanks/</loc><lastmod>2021-05-27T20:25:33+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/</loc><lastmod>2021-03-09T18:56:02+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/help/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/prologue/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/api/</loc><lastmod>2021-03-11T10:37:50+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/contact/</loc><lastmod>2021-05-27T18:12:01+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/blog/</loc><lastmod>2021-05-26T14:18:41+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset> <?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/pow-performance/</loc><lastmod>2021-09-01T14:27:17+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/blog/say-hello-to-mcaptcha/</loc><lastmod>2021-05-27T18:12:01+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/api/mcaptcha-system/</loc><lastmod>2021-04-10T17:08:46+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/getting-started/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/prologue/introduction/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/api/browser/</loc><lastmod>2021-03-11T11:29:26+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/docker/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/bare-metal/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/api/pow-sha256/</loc><lastmod>2021-04-01T22:58:38+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/dependencies/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/help/troubleshooting/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/help/faq/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/about/</loc><lastmod>2021-05-27T16:28:59+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/donate/</loc><lastmod>2021-07-16T21:58:39+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/contributors/aravinth-manivannan/</loc><lastmod>2021-05-26T14:18:41+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/contributors/</loc><lastmod>2021-05-26T14:18:41+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/privacy-policy/</loc><lastmod>2021-05-27T19:15:04+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/community/</loc><lastmod>2021-05-27T18:12:01+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/security/</loc><lastmod>2021-05-27T19:15:04+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/thanks/</loc><lastmod>2021-05-27T20:25:33+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/</loc><lastmod>2021-03-09T18:56:02+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/help/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/prologue/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/api/</loc><lastmod>2021-03-11T10:37:50+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/contact/</loc><lastmod>2021-05-27T18:12:01+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/blog/</loc><lastmod>2021-05-26T14:18:41+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>/docs/self-hosted/</loc><lastmod>2021-07-21T15:49:53+05:30</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>