raiden-ts
Version:
Raiden Light Client Typescript/Javascript SDK
245 lines • 12.7 kB
HTML
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Running raiden-cli on the raspberry pi | raiden-ts - v3.1.1</title>
<meta name="description" content="Documentation for raiden-ts - v3.1.1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../assets/css/main.css">
<link rel="stylesheet" href="../../assets/css/pages.css">
<script async src="../../assets/js/search.js" id="search-script"></script>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../../assets/js/search.json" data-base="../..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../../index.html" class="title">raiden-ts - v3.1.1</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../../modules.html">raiden-ts - v3.1.1</a>
</li>
<li>
<a href="README.html">Using the Raiden CLI</a>
</li>
<li>
<a href="raspberrypi.html">Running raiden-cli on the raspberry pi</a>
</li>
</ul>
<h1>Running raiden-cli on the raspberry pi</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<div class="tsd-panel tsd-typography">
<a href="#running-the-light-client-on-the-raspberry-pi" id="running-the-light-client-on-the-raspberry-pi" style="color: inherit; text-decoration: none;">
<h1>Running the Light Client on the Raspberry Pi</h1>
</a>
<p>This tutorial assumes the following:</p>
<ol>
<li>These steps have to be run on the <em>Raspberry Pi 4</em>.</li>
<li><em>Raspberry Pi</em> has to be in the same network as your <strong>PC</strong> with SSH enabled.</li>
<li>The <em>Raspberry Pi</em> has <a href="https://www.raspberrypi.org/software/operating-systems/">Raspberry Pi OS Lite</a> installed.</li>
</ol>
<p>The steps to copy files from your <strong>PC</strong> to the <strong>pi</strong> have been explicitly mentioned and have to be run on your <strong>PC</strong>.</p>
<pre><code class="language-sh"><span style="color: #000000">sudo apt update</span>
<span style="color: #000000">sudo apt full-upgrade</span>
<span style="color: #000000">sudo apt install git</span>
</code></pre>
<p>Perform a <a href="https://github.com/nvm-sh/nvm#git-install">git install</a> of NVM</p>
<pre><code class="language-sh"><span style="color: #000000">git clone https://github.com/nvm-sh/nvm.git .nvm</span>
<span style="color: #795E26">cd</span><span style="color: #000000"> ~/.nvm</span>
<span style="color: #000000">git checkout v0.38.0</span>
<span style="color: #795E26">.</span><span style="color: #000000"> ./nvm.sh</span>
<span style="color: #000000">nvm install --lts</span>
<span style="color: #000000">npm install --global yarn</span>
</code></pre>
<p>Check the <code>arm</code> system. In our case output would be <code>armv7l</code>.<br>The <strong>pi</strong>'s CPU is ARMv8 64 bit but the operating system is 32 bit.
More information <a href="https://www.raspberrypi.org/forums/viewtopic.php?t=305629">here</a>.</p>
<pre><code class="language-sh"><span style="color: #000000">uname -m</span>
</code></pre>
<p>Download <a href="https://geth.ethereum.org/downloads/">Geth</a> for your <code>arm</code> system above.<br>We require geth only to generate new accounts on the <strong>pi</strong>.<br>Later you would have to fund the account with <em>Eth</em> and <em>tokens</em> from whichever testnet you would be testing the <strong>pi</strong> on.</p>
<pre><code class="language-sh"><span style="color: #000000">wget https://linkto.latest/geth-linux-arm7-build.tar.gz</span>
<span style="color: #000000">tar -xvzf geth-linux-arm7-build.tar.gz</span>
<span style="color: #000000">sudo cp geth-linux-arm7-1.10.4-aa637fd3/geth /usr/local/bin/</span>
<span style="color: #000000">which geth</span>
<span style="color: #000000">geth version</span>
<span style="color: #000000">geth account new</span>
</code></pre>
<p>Refer to the <a href="https://github.com/raiden-network/light-client/tree/master/raiden-cli">raiden-cli</a> guide to generate the <strong>bundle</strong> folder on your x86_64 or x64 PC.</p>
<p>Copy the bundle folder to the Raspberry Pi using the following example (needs to run on your <strong>PC</strong>):</p>
<pre><code><span style="color: #001080">scp</span><span style="color: #000000"> -</span><span style="color: #001080">r</span><span style="color: #000000"> /</span><span style="color: #001080">pathto</span><span style="color: #000000">/</span><span style="color: #001080">light</span><span style="color: #000000">-</span><span style="color: #001080">client</span><span style="color: #000000">/</span><span style="color: #001080">raiden</span><span style="color: #000000">-</span><span style="color: #001080">cli</span><span style="color: #000000">/</span><span style="color: #001080">bundle</span><span style="color: #000000"> </span><span style="color: #001080">pi</span><span style="color: #000000">@</span><span style="color: #098658">192.168</span><span style="color: #000000">.</span><span style="color: #098658">29.54</span><span style="color: #000000">:/</span><span style="color: #001080">home</span><span style="color: #000000">/</span><span style="color: #001080">pi</span><span style="color: #000000">/</span><span style="color: #001080">bundle</span>
</code></pre>
<p>Getting the <strong>leveldown</strong> and <strong>node-webrtc</strong> <code>.node</code> native dependencies for <code>armv7l</code> architecture</p>
<a href="#leveldown" id="leveldown" style="color: inherit; text-decoration: none;">
<h2>Leveldown</h2>
</a>
<p>On the <a href="https://github.com/Level/leveldown/releases/tag/v6.0.0">leveldown</a> github page, download the <code>arm</code> prebuilt binaries.</p>
<pre><code class="language-sh"><span style="color: #000000">wget https://linkto.latest.leveldown.build/vX.X.X-arm.tar.gz</span>
</code></pre>
<p>Extract the files</p>
<pre><code class="language-sh"><span style="color: #000000">tar -xvzf vx.x.x-arm.tar.gz</span>
</code></pre>
<p>Copy the <code>node.napi.armv7.node</code> file to the appropriate place inside the bundle folder.</p>
<pre><code class="language-sh"><span style="color: #000000">cp node.napi.armv7.node ~/bundle/prebuilds/linux-x64/</span>
</code></pre>
<p>In the <code>index.js</code> file inside the bundle folder find <code>node.napi.glibc.node</code> and replace it with <code>node.napi.armv7.node</code></p>
<a href="#node-webrtc" id="node-webrtc" style="color: inherit; text-decoration: none;">
<h2>node-webrtc</h2>
</a>
<p>Install <a href="https://github.com/node-webrtc/node-webrtc">node-webrtc</a> dependency</p>
<pre><code class="language-sh"><span style="color: #000000">yarn add wrtc</span>
</code></pre>
<p>Copy the <code>wrtc.node</code> file in the appropriate folder inside the bundle.</p>
<pre><code class="language-sh"><span style="color: #000000">cp ~/.config/yarn/global/node_modules/wrtc/build/Release/wrtc.node ~/bundle/build/</span>
</code></pre>
<a href="#running-the-raiden-cli-on-the-raspberry-pi" id="running-the-raiden-cli-on-the-raspberry-pi" style="color: inherit; text-decoration: none;">
<h2>Running the raiden-cli on the Raspberry Pi</h2>
</a>
<pre><code class="language-sh"><span style="color: #000000">node bundle/index.js --help</span>
</code></pre>
</div>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class="label pp-nav pp-group">
<span>Get <wbr>Started</span>
</li>
<li class=" pp-nav pp-page">
<a href="../Get Started/prerequisites.html">Prerequisites</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Get Started/installing-sdk.html">Installing the SDK</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Get Started/installing-dapp.html">Installing the d<wbr>App</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Get Started/connecting.html">Connecting</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Get Started/private-chain.html">Private chains</a>
</li>
<li class="label pp-nav pp-group">
<span>Usage</span>
</li>
<li class=" pp-nav pp-page">
<a href="../Usage/opening-channel.html">Opening a channel</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Usage/funding-channel.html">Funding a channel</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Usage/direct-transfer.html">Transferring</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Usage/closing-channel.html">Closing a channel</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Usage/settling-channel.html">Settling a channel</a>
</li>
<li class="label pp-nav pp-group">
<span>Using the <wbr>Raiden d<wbr>App</span>
</li>
<li class=" pp-nav pp-page">
<a href="../Using the Raiden dApp/using-dapp.html">Overview</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Using the Raiden dApp/navigate-dapp.html">Navigate the <wbr>Raiden d<wbr>App</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Using the Raiden dApp/hub-selection-channel-opening.html">Hub <wbr>Selection and <wbr>Channel <wbr>Opening</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Using the Raiden dApp/transfers.html">Transfers</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Using the Raiden dApp/channels.html">Channels</a>
</li>
<li class=" pp-nav pp-page">
<a href="../Using the Raiden dApp/account.html">Accounts</a>
</li>
<li class="label pp-nav pp-group">
<span>Using the <wbr>Raiden CLI</span>
</li>
<li class=" pp-nav pp-page">
<a href="README.html">Overview</a>
</li>
<li class="current pp-nav pp-page">
<a href="raspberrypi.html">Running raiden-<wbr>cli on the raspberry pi</a>
</li>
<li class="label pp-nav pp-group">
<span>API</span>
</li>
<li class=" ">
<a href="../../modules.html">Exports</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
</nav>
</div>
</div>
</div>
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
<div class="overlay"></div>
<script src="../../assets/js/main.js"></script>
</body>
</html>