<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Blockchain on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/blockchain/</link>
        <description>Recent content in Blockchain on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Thu, 25 Sep 2025 15:29:48 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/blockchain/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>solana</title>
        <link>https://producthunt.programnotes.cn/en/p/solana/</link>
        <pubDate>Thu, 25 Sep 2025 15:29:48 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/solana/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1641547827212-22eccac51a36?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTg3ODUyNzd8&amp;ixlib=rb-4.1.0" alt="Featured image of post solana" /&gt;&lt;h1 id=&#34;solana-labssolana&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/solana-labs/solana&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;solana-labs/solana&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;please-read-this-repo-is-now-a-public-archive&#34;&gt;PLEASE READ: This repo is now a public archive
&lt;/h1&gt;&lt;p&gt;This repo still exists in archived form, feel free to fork any reference
implementations it still contains.&lt;/p&gt;
&lt;p&gt;See Agave, the Solana validator implementation from Anza: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anza-xyz/agave&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anza-xyz/agave&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;a href=&#34;https://solana.com&#34;&gt;
    &lt;img alt=&#34;Solana&#34; src=&#34;https://i.imgur.com/IKyzQ6T.png&#34; width=&#34;250&#34; /&gt;
  &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://crates.io/crates/solana-core&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/crates/v/solana-core.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Solana crate&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://docs.rs/solana-core&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://docs.rs/solana-core/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Solana documentation&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://buildkite.com/solana-labs/solana/builds?branch=master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://badge.buildkite.com/8cc350de251d61483db98bdfc895b9ea0ac8ffa4a32ee850ed.svg?branch=master&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Build status&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://codecov.io/gh/solana-labs/solana&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://codecov.io/gh/solana-labs/solana/branch/master/graph/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;codecov&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;building&#34;&gt;Building
&lt;/h1&gt;&lt;h2 id=&#34;1-install-rustc-cargo-and-rustfmt&#34;&gt;&lt;strong&gt;1. Install rustc, cargo and rustfmt.&lt;/strong&gt;
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ curl https://sh.rustup.rs -sSf &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ &lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$HOME&lt;/span&gt;/.cargo/env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ rustup component add rustfmt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;When building the master branch, please make sure you are using the latest stable rust version by running:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ rustup update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;When building a specific release branch, you should check the rust version in &lt;code&gt;ci/rust-version.sh&lt;/code&gt; and if necessary, install that version by running:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ rustup install VERSION
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Note that if this is not the latest rust version on your machine, cargo commands may require an &lt;a class=&#34;link&#34; href=&#34;https://rust-lang.github.io/rustup/overrides.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;override&lt;/a&gt; in order to use the correct version.&lt;/p&gt;
&lt;p&gt;On Linux systems you may need to install libssl-dev, pkg-config, zlib1g-dev, protobuf etc.&lt;/p&gt;
&lt;p&gt;On Ubuntu:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt-get install libssl-dev libudev-dev pkg-config zlib1g-dev llvm clang cmake make libprotobuf-dev protobuf-compiler
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;On Fedora:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo dnf install openssl-devel systemd-devel pkg-config zlib-devel llvm clang cmake make protobuf-devel protobuf-compiler perl-core
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;2-download-the-source-code&#34;&gt;&lt;strong&gt;2. Download the source code.&lt;/strong&gt;
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git clone https://github.com/solana-labs/solana.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; solana
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-build&#34;&gt;&lt;strong&gt;3. Build.&lt;/strong&gt;
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./cargo build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h1 id=&#34;testing&#34;&gt;Testing
&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;Run the test suite:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./cargo &lt;span class=&#34;nb&#34;&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;starting-a-local-testnet&#34;&gt;Starting a local testnet
&lt;/h3&gt;&lt;p&gt;Start your own testnet locally, instructions are in the &lt;a class=&#34;link&#34; href=&#34;https://docs.solanalabs.com/clusters/benchmark&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;online docs&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;accessing-the-remote-development-cluster&#34;&gt;Accessing the remote development cluster
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;devnet&lt;/code&gt; - stable public cluster for development accessible via
devnet.solana.com. Runs 24/7. Learn more about the &lt;a class=&#34;link&#34; href=&#34;https://docs.solanalabs.com/clusters&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;public clusters&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;benchmarking&#34;&gt;Benchmarking
&lt;/h1&gt;&lt;p&gt;First, install the nightly build of rustc. &lt;code&gt;cargo bench&lt;/code&gt; requires the use of the
unstable features only available in the nightly build.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ rustup install nightly
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Run the benchmarks:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cargo +nightly bench
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h1 id=&#34;release-process&#34;&gt;Release Process
&lt;/h1&gt;&lt;p&gt;The release process for this project is described &lt;a class=&#34;link&#34; href=&#34;RELEASE.md&#34; &gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;code-coverage&#34;&gt;Code coverage
&lt;/h1&gt;&lt;p&gt;To generate code coverage statistics:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scripts/coverage.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ open target/cov/lcov-local/index.html
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Why coverage? While most see coverage as a code quality metric, we see it primarily as a developer
productivity metric. When a developer makes a change to the codebase, presumably it&amp;rsquo;s a &lt;em&gt;solution&lt;/em&gt; to
some problem. Our unit-test suite is how we encode the set of &lt;em&gt;problems&lt;/em&gt; the codebase solves. Running
the test suite should indicate that your change didn&amp;rsquo;t &lt;em&gt;infringe&lt;/em&gt; on anyone else&amp;rsquo;s solutions. Adding a
test &lt;em&gt;protects&lt;/em&gt; your solution from future changes. Say you don&amp;rsquo;t understand why a line of code exists,
try deleting it and running the unit-tests. The nearest test failure should tell you what problem
was solved by that code. If no test fails, go ahead and submit a Pull Request that asks, &amp;ldquo;what
problem is solved by this code?&amp;rdquo; On the other hand, if a test does fail and you can think of a
better way to solve the same problem, a Pull Request with your solution would most certainly be
welcome! Likewise, if rewriting a test can better communicate what code it&amp;rsquo;s protecting, please
send us that patch!&lt;/p&gt;
&lt;h1 id=&#34;disclaimer&#34;&gt;Disclaimer
&lt;/h1&gt;&lt;p&gt;All claims, content, designs, algorithms, estimates, roadmaps,
specifications, and performance measurements described in this project
are done with the Solana Labs, Inc. (“SL”) good faith efforts. It is up to
the reader to check and validate their accuracy and truthfulness.
Furthermore, nothing in this project constitutes a solicitation for
investment.&lt;/p&gt;
&lt;p&gt;Any content produced by SL or developer resources that SL provides are
for educational and inspirational purposes only. SL does not encourage,
induce or sanction the deployment, integration or use of any such
applications (including the code comprising the Solana blockchain
protocol) in violation of applicable laws or regulations and hereby
prohibits any such deployment, integration or use. This includes the use of
any such applications by the reader (a) in violation of export control
or sanctions laws of the United States or any other applicable
jurisdiction, (b) if the reader is located in or ordinarily resident in
a country or territory subject to comprehensive sanctions administered
by the U.S. Office of Foreign Assets Control (OFAC), or (c) if the
reader is or is working on behalf of a Specially Designated National
(SDN) or a person subject to similar blocking or denied party
prohibitions.&lt;/p&gt;
&lt;p&gt;The reader should be aware that U.S. export control and sanctions laws prohibit
U.S. persons (and other persons that are subject to such laws) from transacting
with persons in certain countries and territories or that are on the SDN list.
Accordingly, there is a risk to individuals that other persons using any of the
code contained in this repo, or a derivation thereof, may be sanctioned persons
and that transactions with such persons would be a violation of U.S. export
controls and sanctions law.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>linera-protocol</title>
        <link>https://producthunt.programnotes.cn/en/p/linera-protocol/</link>
        <pubDate>Sun, 21 Sep 2025 15:24:17 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/linera-protocol/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1681394344964-04387f320e83?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTg0MzkzOTB8&amp;ixlib=rb-4.1.0" alt="Featured image of post linera-protocol" /&gt;&lt;h1 id=&#34;linera-iolinera-protocol&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linera-io/linera-protocol&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;linera-io/linera-protocol&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;&#34;&gt;&lt;img src=&#34;https://github.com/linera-io/linera-protocol/assets/1105398/fe08c941-93af-4114-bb83-bcc0eaec95f9&#34; width=&#34;250&#34; height=&#34;85&#34; /&gt;
&lt;/h1&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;&lt;img src=&#34;https://img.shields.io/github/license/linera-io/linera-protocol&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;License&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/linera-io/linera-protocol/actions/workflows/docker-compose.yml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/linera-io/linera-protocol/actions/workflows/docker-compose.yml/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Build Status for Docker&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/linera-io/linera-protocol/actions/workflows/rust.yml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/linera-io/linera-protocol/actions/workflows/rust.yml/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Build Status for Rust&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/linera-io/linera-protocol/actions/workflows/documentation.yml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/linera-io/linera-protocol/actions/workflows/documentation.yml/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Build Status for Documentation&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://x.com/linera_io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/twitter/follow/linera_io&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Twitter&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://discord.com/invite/linera&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/discord/984941796272521226&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Discord&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!-- [![Build Status for Kubernetes](https://github.com/linera-io/linera-protocol/actions/workflows/kubernetes.yml/badge.svg)](https://github.com/linera-io/linera-protocol/actions/workflows/kubernetes.yml) --&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Linera&lt;/a&gt; is a decentralized blockchain infrastructure designed for highly scalable,
secure, low-latency Web3 applications.&lt;/p&gt;
&lt;h2 id=&#34;documentation&#34;&gt;Documentation
&lt;/h2&gt;&lt;p&gt;Visit our &lt;a class=&#34;link&#34; href=&#34;https://linera.dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;developer page&lt;/a&gt; and read our
&lt;a class=&#34;link&#34; href=&#34;https://linera.io/whitepaper&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;whitepaper&lt;/a&gt; to learn more about the Linera protocol.&lt;/p&gt;
&lt;h2 id=&#34;repository-structure&#34;&gt;Repository Structure
&lt;/h2&gt;&lt;p&gt;The main crates and directories of this repository can be summarized as follows: (listed
from low to high levels in the dependency graph)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_base/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-base&lt;/code&gt;&lt;/a&gt; Base
definitions, including cryptography.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_version/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-version&lt;/code&gt;&lt;/a&gt;
A library to manage version info in binaries and services.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_views/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-views&lt;/code&gt;&lt;/a&gt; A
library mapping complex data structures onto a key-value store. The corresponding
procedural macros are implemented in &lt;code&gt;linera-views-derive&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_execution/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-execution&lt;/code&gt;&lt;/a&gt;
Persistent data and the corresponding logic for runtime and execution of Linera
applications.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_chain/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-chain&lt;/code&gt;&lt;/a&gt;
Persistent data and the corresponding logic for chains of blocks, certificates, and
cross-chain messaging.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_storage/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-storage&lt;/code&gt;&lt;/a&gt;
Defines the storage abstractions for the protocol on top of &lt;code&gt;linera-chain&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_core/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-core&lt;/code&gt;&lt;/a&gt; The
core Linera protocol, including client and server logic, node synchronization, etc.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_rpc/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-rpc&lt;/code&gt;&lt;/a&gt;
Defines the data-type for RPC messages (currently all client ↔ proxy ↔
chain ↔ chain interactions), and track the corresponding data schemas.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_client/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-client&lt;/code&gt;&lt;/a&gt;
Library for writing Linera clients.  Used for the command-line
client and the node service in &lt;code&gt;linera-service&lt;/code&gt;, as well as the Web
client in &lt;a class=&#34;link&#34; href=&#34;https://github.com/linera-io/linera-web/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-web&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_service/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-service&lt;/code&gt;&lt;/a&gt;
Executable for clients (aka CLI wallets), proxy (aka validator frontend) and servers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://linera-io.github.io/linera-protocol/linera_sdk/index.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;linera-sdk&lt;/code&gt;&lt;/a&gt; The
library to develop Linera applications written in Rust for the Wasm virtual machine. The
corresponding procedural macros are implemented in &lt;code&gt;linera-sdk-derive&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;./examples&#34; &gt;&lt;code&gt;examples&lt;/code&gt;&lt;/a&gt; Examples of Linera applications written in Rust.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites
&lt;/h2&gt;&lt;p&gt;See &lt;a class=&#34;link&#34; href=&#34;./INSTALL.md&#34; &gt;&lt;code&gt;INSTALL.md&lt;/code&gt;&lt;/a&gt; for software requirements to develop in this repo.&lt;/p&gt;
&lt;h2 id=&#34;quickstart-with-the-linera-cli-tool&#34;&gt;Quickstart with the Linera CLI tool
&lt;/h2&gt;&lt;p&gt;The following commands set up a local test network and run some transfers between the
microchains owned by a single wallet.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;37
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;38
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;39
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;40
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;41
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;42
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;43
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;44
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;45
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;46
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;47
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;48
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;49
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;50
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;51
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;52
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;53
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;54
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;55
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;56
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;57
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Make sure to compile the Linera binaries and add them in the $PATH.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# cargo build -p linera-storage-service -p linera-service --bins&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/target/debug:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$PATH&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Import the optional helper function `linera_spawn`.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; /dev/stdin &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;linera net helper 2&amp;gt;/dev/null&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Run a local test network with the default parameters and a number of microchains&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# owned by the default wallet. This also defines `LINERA_TMP_DIR`.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera_spawn &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera net up --with-faucet --faucet-port &lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Remember the URL of the faucet.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;FAUCET_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# If you&amp;#39;re using a testnet, start here and run this instead:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#   LINERA_TMP_DIR=$(mktemp -d)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#   FAUCET_URL=https://faucet.testnet-XXX.linera.net  # for some value XXX&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Set the path of the future wallet.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LINERA_WALLET&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$LINERA_TMP_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/wallet.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LINERA_KEYSTORE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$LINERA_TMP_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/keystore.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LINERA_STORAGE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;rocksdb:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$LINERA_TMP_DIR&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/client.db&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Initialize a new user wallet.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera wallet init --faucet &lt;span class=&#34;nv&#34;&gt;$FAUCET_URL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Request chains.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;INFO1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;linera wallet request-chain --faucet &lt;span class=&#34;nv&#34;&gt;$FAUCET_URL&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;INFO2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;linera wallet request-chain --faucet &lt;span class=&#34;nv&#34;&gt;$FAUCET_URL&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CHAIN1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;INFO1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[0]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ACCOUNT1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;INFO1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[1]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CHAIN2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;INFO2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[0]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ACCOUNT2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;INFO2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[1]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Show the different chains tracked by the wallet.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera wallet show
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Query the chain balance of some of the chains.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera query-balance &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera query-balance &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Transfer 10 units then 5 back.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera transfer &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt; --from &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; --to &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera transfer &lt;span class=&#34;m&#34;&gt;5&lt;/span&gt; --from &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; --to &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Query balances again.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera query-balance &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera query-balance &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Now let&amp;#39;s fund the user balances.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera transfer &lt;span class=&#34;m&#34;&gt;5&lt;/span&gt; --from &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; --to &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ACCOUNT1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera transfer &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; --from &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ACCOUNT1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; --to &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ACCOUNT2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Query user balances again.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera query-balance &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ACCOUNT1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;linera query-balance &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CHAIN2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ACCOUNT2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;More complex examples may be found in our &lt;a class=&#34;link&#34; href=&#34;https://linera.dev&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;developer manual&lt;/a&gt; as well
as the &lt;a class=&#34;link&#34; href=&#34;./examples&#34; &gt;example applications&lt;/a&gt; in this repository.&lt;/p&gt;
&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;We welcome contributions from the community! If you&amp;rsquo;d like to contribute to the Linera protocol:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fork the repository&lt;/li&gt;
&lt;li&gt;Create a feature branch (&lt;code&gt;git checkout -b feature/amazing-feature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Commit your changes (&lt;code&gt;git commit -m &#39;Add some amazing feature&#39;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Push to the branch (&lt;code&gt;git push origin feature/amazing-feature&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Open a Pull Request&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For detailed guidelines, see our &lt;a class=&#34;link&#34; href=&#34;./CONTRIBUTING.md&#34; &gt;contribution guide&lt;/a&gt;.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>monad</title>
        <link>https://producthunt.programnotes.cn/en/p/monad/</link>
        <pubDate>Fri, 19 Sep 2025 15:27:28 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/monad/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1694608108899-b70271860e86?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTgyNjY3ODh8&amp;ixlib=rb-4.1.0" alt="Featured image of post monad" /&gt;&lt;h1 id=&#34;category-labsmonad&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/category-labs/monad&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;category-labs/monad&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;monad-execution&#34;&gt;Monad Execution
&lt;/h1&gt;&lt;h2 id=&#34;overview&#34;&gt;Overview
&lt;/h2&gt;&lt;p&gt;This repository contains the execution component of a Monad node. It
handles the transaction processing for new blocks, and keeps track of
the state of the blockchain. Consequently, this repository contains
the source code for Category Labs&amp;rsquo; custom
&lt;a class=&#34;link&#34; href=&#34;https://docs.monad.xyz/monad-arch/execution/native-compilation&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;EVM implementation&lt;/a&gt;,
its &lt;a class=&#34;link&#34; href=&#34;https://docs.monad.xyz/monad-arch/execution/monaddb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;database implementation&lt;/a&gt;,
and the high-level &lt;a class=&#34;link&#34; href=&#34;https://docs.monad.xyz/monad-arch/execution/parallel-execution&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;transaction scheduling&lt;/a&gt;.
The other main repository is &lt;a class=&#34;link&#34; href=&#34;https://github.com/category-labs/monad-bft&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;monad-bft&lt;/a&gt;,
which contains the source code for the consensus component.&lt;/p&gt;
&lt;h2 id=&#34;building-the-source-code&#34;&gt;Building the source code
&lt;/h2&gt;&lt;h3 id=&#34;package-requirements&#34;&gt;Package requirements
&lt;/h3&gt;&lt;p&gt;Execution has two kinds of dependencies on third-party libraries:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Self-managed&lt;/strong&gt;: execution&amp;rsquo;s CMake build system will checkout most of
its third-party dependencies as git submodules, and build them as part
of its own build process, as CMake subprojects; this will happen
automatically during the build, but you must run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git submodule update --init --recursive
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;after checking out this repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;System&lt;/strong&gt;: some dependencies are expected to already be part of the
system in a default location, i.e., they are expected to come from the
system&amp;rsquo;s package manager. The primary development platform is Ubuntu, so
the required packages use the Debian/Ubuntu package names; an up-to-date
list of the required system dependencies can be found in the docker
configuration file &lt;code&gt;docker/release.Dockerfile&lt;/code&gt; (you will need all
the packages installed via the &lt;code&gt;apt install&lt;/code&gt; commands)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;minimum-development-tool-requirements&#34;&gt;Minimum development tool requirements
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;gcc-15 or clang-19&lt;/li&gt;
&lt;li&gt;CMake 3.27&lt;/li&gt;
&lt;li&gt;Even when using clang, the only standard library supported is libstdc++;
libc++ may work but it is not a tested platform&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;cpu-compilation-requirements&#34;&gt;CPU compilation requirements
&lt;/h3&gt;&lt;p&gt;As explained in the &lt;a class=&#34;link&#34; href=&#34;https://docs.monad.xyz/monad-arch/hardware-requirements&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;hardware requirements&lt;/a&gt;,
a Monad node requires a relatively recent CPU. Execution explicitly
requires this to compile: it needs to emit machine code that is only
supported on recent CPU models, for fast cryptographic operations.&lt;/p&gt;
&lt;p&gt;The minimum ISA support corresponds to the &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;x86-64-v3&lt;/a&gt;
feature level. Consequently, the minimum flag you must pass to the compiler
is &lt;code&gt;-march=x86-64-v3&lt;/code&gt;, or alternatively &lt;code&gt;-march=haswell&lt;/code&gt; (&amp;ldquo;Haswell&amp;rdquo; was
the codename of the first Intel CPU to support all of these features).&lt;/p&gt;
&lt;p&gt;You may also pass any higher architecture level if you wish, although
the compiled binary may not work on older CPUs. The execution docker
files use &lt;code&gt;-march=haswell&lt;/code&gt; because it tries to maximize the number of
systems the resulting binary can run on. If you are only running locally
(i.e., the binary does not need to run anywhere else) use &lt;code&gt;-march=native&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;compiling-the-execution-code&#34;&gt;Compiling the execution code
&lt;/h3&gt;&lt;p&gt;First, change your working directory to the root directory of the execution
git repository root and then run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gcc-15 &lt;span class=&#34;nv&#34;&gt;CXX&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;g++-15 &lt;span class=&#34;nv&#34;&gt;CFLAGS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;-march=haswell&amp;#34;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;CXXFLAGS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;-march=haswell&amp;#34;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;ASMFLAGS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;-march=haswell&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./scripts/configure.sh &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; ./scripts/build.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The above command will do several things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use gcc-15 instead of the system&amp;rsquo;s default compiler&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Emit machine code using Haswell-era CPU extensions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run CMake, and generate a &lt;a class=&#34;link&#34; href=&#34;https://ninja-build.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ninja&lt;/a&gt; build
system in the &lt;code&gt;&amp;lt;path-to-execution-repo&amp;gt;/build&lt;/code&gt; directory with
the &lt;a class=&#34;link&#34; href=&#34;https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;CMAKE_BUILD_TYPE&lt;/code&gt;&lt;/a&gt;
set to &lt;code&gt;RelWithDebInfo&lt;/code&gt; by default&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build the CMake &lt;code&gt;all&lt;/code&gt; target, which builds everything&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The compiler and CPU options are injected via environment variables that
are read by CMake.  If you want debug binaries instead, you can also pass
&lt;code&gt;CMAKE_BUILD_TYPE=Debug&lt;/code&gt; via the environment.&lt;/p&gt;
&lt;p&gt;When finished, this will build all of the execution binaries. The main one is
the execution daemon, &lt;code&gt;build/cmd/monad&lt;/code&gt;. This binary can provide block
execution services for different EVM-compatible blockchains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;When used as part of a Monad blockchain node, it behaves as the block
execution service for the Category Labs consensus daemon (for details, see
&lt;a class=&#34;link&#34; href=&#34;docs/overview.md#how-is-execution-used&#34; &gt;here&lt;/a&gt;); when running in this mode,
Monad EVM extensions (e.g., Monad-style staking) are enabled&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It can also replay the history of other EVM-compatible blockchains, by
executing their historical blocks as inputs; a common developer workflow
(and a good full system test) is to replay the history of the original
Ethereum mainnet and verify that the computed Merkle roots match after
each block&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also run the full test suite in parallel with:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CTEST_PARALLEL_LEVEL=$(nproc) ctest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;a-tour-of-execution&#34;&gt;A tour of execution
&lt;/h2&gt;&lt;p&gt;To understand how the source code is organized, you should start by reading
the execution &lt;a class=&#34;link&#34; href=&#34;docs/overview.md&#34; &gt;developer overview&lt;/a&gt;, which explains how
execution and consensus fit together, and where in the source tree you can
find different pieces of functionality.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>sui</title>
        <link>https://producthunt.programnotes.cn/en/p/sui/</link>
        <pubDate>Fri, 20 Jun 2025 15:30:47 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/sui/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1669281151275-1d430c0a3496?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTA0MDQ1MTR8&amp;ixlib=rb-4.1.0" alt="Featured image of post sui" /&gt;&lt;h1 id=&#34;mystenlabssui&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/MystenLabs/sui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MystenLabs/sui&lt;/a&gt;
&lt;/h1&gt;&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://raw.githubusercontent.com/MystenLabs/sui/refs/heads/main/docs/site/static/img/logo.svg&#34; alt=&#34;Logo&#34; width=&#34;100&#34; height=&#34;100&#34;&gt;
&lt;/p&gt;
&lt;h1 id=&#34;welcome-to-sui&#34;&gt;Welcome to Sui
&lt;/h1&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/MystenLabs/sui/releases/latest&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/v/tag/MystenLabs/sui.svg?sort=semver&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Github release&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/MystenLabs/sui/blob/main/LICENSE&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/license/MystenLabs/sui&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;License&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://sui.io&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sui&lt;/a&gt; is a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the &lt;a class=&#34;link&#34; href=&#34;https://github.com/MystenLabs/awesome-move&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Move programming language&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;sui-highlights&#34;&gt;Sui Highlights
&lt;/h2&gt;&lt;p&gt;Sui offers the following benefits and capabilities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unmatched scalability, instant settlement&lt;/li&gt;
&lt;li&gt;A safe smart contract language accessible to mainstream developers&lt;/li&gt;
&lt;li&gt;Ability to define rich and composable on-chain assets&lt;/li&gt;
&lt;li&gt;Better user experience for web3 apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sui is the only blockchain today that can scale with the growth of web3 while achieving industry-leading performance, cost, programmability, and usability. As Sui approaches Mainnet launch, it will demonstrate capacity beyond the transaction processing capabilities of established systems – traditional and blockchain alike. Sui is the first internet-scale programmable blockchain platform, a foundational layer for web3.&lt;/p&gt;
&lt;h2 id=&#34;sui-architecture&#34;&gt;Sui Architecture
&lt;/h2&gt;&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart LR
    CC(CLI Client) --&amp;gt; ClientService
    RC(Rest Client) --&amp;gt; ClientService
    RPCC(RPC Client) --&amp;gt; ClientService
    ClientService --&amp;gt; AuthorityAggregator
    AuthorityAggregator --&amp;gt; AC1[AuthorityClient] &amp;amp; AC2[AuthorityClient]
    subgraph Authority1
      AS[AuthorityState]
    end
    subgraph Authority2
      AS2[AuthorityState]
    end
    AC1 &amp;lt;==&amp;gt;|Network TCP| Authority1
    AC2 &amp;lt;==&amp;gt;|Network TCP| Authority2
&lt;/pre&gt;

&lt;h2 id=&#34;sui-overview&#34;&gt;Sui Overview
&lt;/h2&gt;&lt;p&gt;Sui is a smart contract platform maintained by a permissionless set of authorities that play a role similar to validators or miners in other blockchain systems.&lt;/p&gt;
&lt;p&gt;Sui offers scalability and unprecedented low-latency for common use cases. Sui makes the vast majority of transactions processable in parallel, which makes better use of processing resources, and offers the option to increase throughput with more resources. Sui forgoes consensus to instead use simpler and lower-latency primitives for common use cases, such as payment transactions and asset transfers. This is unprecedented in the blockchain world and enables a number of new latency-sensitive distributed applications, ranging from gaming to retail payment at physical points of sale.&lt;/p&gt;
&lt;p&gt;Sui is written in &lt;a class=&#34;link&#34; href=&#34;https://www.rust-lang.org&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Rust&lt;/a&gt; and supports smart contracts written in the &lt;a class=&#34;link&#34; href=&#34;https://github.com/move-language/move&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Move programming language&lt;/a&gt; to define assets that may have an owner. Move programs define operations on these assets including custom rules for their creation, the transfer of these assets to new owners, and operations that mutate assets.&lt;/p&gt;
&lt;p&gt;Sui has a native token called SUI, with a fixed supply. The SUI token is used to pay for gas, and is also used as &lt;a class=&#34;link&#34; href=&#34;https://learn.bybit.com/blockchain/delegated-proof-of-stake-dpos/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;delegated stake on authorities&lt;/a&gt; within an epoch. The voting power of authorities within this epoch is a function of this delegated stake. Authorities are periodically reconfigured according to the stake delegated to them. In any epoch, the set of authorities is &lt;a class=&#34;link&#34; href=&#34;https://pmg.csail.mit.edu/papers/osdi99.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Byzantine fault tolerant&lt;/a&gt;. At the end of the epoch, fees collected through all transactions processed are distributed to authorities according to their contribution to the operation of the system. Authorities can in turn share some of the fees as rewards to users that delegated stakes to them.&lt;/p&gt;
&lt;p&gt;Sui is supported by several cutting-edge &lt;a class=&#34;link&#34; href=&#34;https://github.com/MystenLabs/sui/blob/main/docs/content/concepts/research-papers.mdx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;peer-reviewed studies&lt;/a&gt; and extensive years of open-source development.&lt;/p&gt;
&lt;h2 id=&#34;more-about-sui&#34;&gt;More About Sui
&lt;/h2&gt;&lt;p&gt;Use the following links to learn more about Sui and the Sui ecosystem:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Learn more about working with Sui in the &lt;a class=&#34;link&#34; href=&#34;https://docs.sui.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sui Documentation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Join the Sui community on &lt;a class=&#34;link&#34; href=&#34;https://discord.gg/sui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sui Discord&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Find out more about the Sui ecosystem on the &lt;a class=&#34;link&#34; href=&#34;https://sui.io/resources/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sui Resources&lt;/a&gt; page.&lt;/li&gt;
&lt;li&gt;Review information about Sui governance, &lt;a class=&#34;link&#34; href=&#34;https://suifoundation.org/decentralization&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;decentralization&lt;/a&gt;, and &lt;a class=&#34;link&#34; href=&#34;https://sui.io/grants-hub&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Developer Grants Program&lt;/a&gt; on the &lt;a class=&#34;link&#34; href=&#34;https://sui.io/about&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sui Foundation&lt;/a&gt; site.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;how-to-contribute&#34;&gt;How to Contribute
&lt;/h2&gt;&lt;p&gt;See the &lt;a class=&#34;link&#34; href=&#34;CONTRIBUTING.md&#34; &gt;Contributing Guide&lt;/a&gt; for details on how to contribute to Sui.&lt;/p&gt;
&lt;h2 id=&#34;code-of-conduct&#34;&gt;Code of Conduct
&lt;/h2&gt;&lt;p&gt;See the &lt;a class=&#34;link&#34; href=&#34;CODE_OF_CONDUCT.MD&#34; &gt;Code of Conduct&lt;/a&gt; for details on our code of conduct.&lt;/p&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;See the &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;LICENSE&lt;/a&gt; file for more details.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>deep-prove</title>
        <link>https://producthunt.programnotes.cn/en/p/deep-prove/</link>
        <pubDate>Thu, 29 May 2025 15:30:17 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/deep-prove/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1663483534256-cca864e104b5?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NDg1MDM3MDJ8&amp;ixlib=rb-4.1.0" alt="Featured image of post deep-prove" /&gt;&lt;h1 id=&#34;lagrange-labsdeep-prove&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lagrange-Labs/deep-prove&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Lagrange-Labs/deep-prove&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;-deepprove-zero-knowledge-machine-learning-zkml-inference&#34;&gt;🚀 DeepProve: Zero-Knowledge Machine Learning (zkml) Inference
&lt;/h1&gt;&lt;p&gt;Welcome to &lt;strong&gt;DeepProve&lt;/strong&gt;, a cutting-edge framework designed to prove neural network inference using zero-knowledge cryptographic techniques. Whether you&amp;rsquo;re working with Multi-Layer Perceptrons (MLPs) or Convolutional Neural Networks (CNNs), DeepProve offers a fast and efficient way to verify computations without revealing the underlying data.
zkml is the name of the subcrate implementing the proving logic.&lt;/p&gt;
&lt;h2 id=&#34;-what-does-deepprove-do&#34;&gt;🤔 What Does DeepProve Do?
&lt;/h2&gt;&lt;p&gt;DeepProve leverages advanced cryptographic methods like sumchecks and logup GKR to achieve sublinear proving times. This means you can prove the correctness of your model&amp;rsquo;s inference faster than ever before!&lt;/p&gt;
&lt;h3 id=&#34;-benchmark-highlights&#34;&gt;📊 Benchmark Highlights
&lt;/h3&gt;&lt;p&gt;CNN 264k: This runs a CNN on the cifar 10 dataset for a total of 264k parameters. DeepProve is proving 158x faster at this size!
Dense 4M: This runs a multiple dense layers for a total of 4 million parameters. DeepProve is proving 54x faster at this size!&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Model Type&lt;/th&gt;
          &lt;th&gt;ZKML Proving Time (ms)&lt;/th&gt;
          &lt;th&gt;ZKML Verification Time (ms)&lt;/th&gt;
          &lt;th&gt;EZKL Proving Time (ms)&lt;/th&gt;
          &lt;th&gt;EZKL Verification Time (ms)&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;CNN 264k&lt;/td&gt;
          &lt;td&gt;1242&lt;/td&gt;
          &lt;td&gt;599&lt;/td&gt;
          &lt;td&gt;196567.01&lt;/td&gt;
          &lt;td&gt;312505&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Dense 4M&lt;/td&gt;
          &lt;td&gt;2335&lt;/td&gt;
          &lt;td&gt;520&lt;/td&gt;
          &lt;td&gt;126831.3&lt;/td&gt;
          &lt;td&gt;1112&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;-licensing&#34;&gt;📜 Licensing
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;zkml folder&lt;/strong&gt;: Licensed under the &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lagrange-Labs/deep-prove/blob/master/zkml/LICENSE&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Lagrange License&lt;/a&gt;, unless otherwise specified.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rest of the Code&lt;/strong&gt;: Licensed under Apache 2.0 + MIT, as per the original repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;-use-cases&#34;&gt;🌟 Use Cases
&lt;/h2&gt;&lt;p&gt;Proving inference of AI models has a wide range of applications, especially in scenarios where privacy and trust are paramount. For instance, in healthcare, sensitive patient data can be used to make predictions without exposing the data itself. In finance, models can be verified for compliance without revealing proprietary algorithms. Additionally, in decentralized applications, zero-knowledge proofs can ensure the integrity of AI computations on the blockchain, fostering trust and transparency. These use cases highlight the transformative potential of ZKML in various industries.&lt;/p&gt;
&lt;h2 id=&#34;-acknowledgements&#34;&gt;🙏 Acknowledgements
&lt;/h2&gt;&lt;p&gt;This project builds upon the work from scroll-tech/ceno, reusing the sumcheck and GKR implementation from their codebase. Check out their work at &lt;a class=&#34;link&#34; href=&#34;https://github.com/scroll-tech/ceno&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;scroll-tech/ceno&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For more technical details and usage instructions, dive into the &lt;a class=&#34;link&#34; href=&#34;zkml/README.md&#34; &gt;ZKML README&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Happy proving! 🎉&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
