<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SchlaubiDev</title>
    <description>The latest articles on DEV Community by SchlaubiDev (@schlaubidev).</description>
    <link>https://dev.to/schlaubidev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F868103%2F89edaa8b-77af-437d-abb4-4443df149e4b.png</url>
      <title>DEV Community: SchlaubiDev</title>
      <link>https://dev.to/schlaubidev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/schlaubidev"/>
    <language>en</language>
    <item>
      <title>Run rippled on Windows using WSL</title>
      <dc:creator>SchlaubiDev</dc:creator>
      <pubDate>Fri, 10 Nov 2023 14:49:10 +0000</pubDate>
      <link>https://dev.to/schlaubidev/run-rippled-on-windows-using-wsl-38ld</link>
      <guid>https://dev.to/schlaubidev/run-rippled-on-windows-using-wsl-38ld</guid>
      <description>&lt;p&gt;Windows Subsystem for Linux (WSL) lets you install a Linux distribution (such as Ubuntu) and use Linux applications without the overhead of a traditional virtual machine or dualboot setup. This enables Windows users to install the XRP Ledger in their familiar Windows environment.&lt;/p&gt;

&lt;p&gt;This guide documents how I did that on my Windows 10 machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TLDR&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install WSL with Ubuntu 22 (&lt;a href="https://learn.microsoft.com/en-us/windows/wsl/install"&gt;https://learn.microsoft.com/en-us/windows/wsl/install&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Install rippled on Ubuntu 22 (&lt;a href="https://xrpl.org/install-rippled-on-ubuntu.html"&gt;https://xrpl.org/install-rippled-on-ubuntu.html&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;A little more detailed steps&lt;/strong&gt;&lt;br&gt;
First ensure your machine fulfills the &lt;a href="https://xrpl.org/system-requirements.html"&gt;system requirements&lt;/a&gt;. At the time of this writing rippled 1.12.0 runs stable as validator on an older physical computer from 2012 with the following specs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Intel I7-2600 2.4GHz&lt;/li&gt;
&lt;li&gt;4x 8gb DDR3 RAM&lt;/li&gt;
&lt;li&gt;240gb SSD (OCZ Agility 6GB/s)&lt;/li&gt;
&lt;li&gt;Network on-board (Asus P8Z68 DELUXE) &lt;/li&gt;
&lt;li&gt;Solid internet connection 600Mbit/s down, 60Mbit/s up&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Microsoft provides a great guide how to &lt;a href="https://learn.microsoft.com/en-us/windows/wsl/install"&gt;install WSL&lt;/a&gt; and a few important commands. I performed the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start Windows Console&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;wsl --install&lt;/code&gt; to install WSL on your Windows 10 (or later) machine&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;wsl --install -d Ubuntu-22.04&lt;/code&gt; to install Ubuntu 22 Linux. This may take a few minutes&lt;/li&gt;
&lt;li&gt;After initial installation you need to specify a username and password for your newly installed Linux&lt;/li&gt;
&lt;li&gt;After installing Ubuntu-22 you're maybe directly logged in. Exit your session and close the terminal. This should prevent a possible error while installing rippled at step 3 ("Permission denied" at wget)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your Ubuntu Linux is now installed and ready. Let's continue with installing rippled. An article on &lt;a href="https://xrpl.org/install-rippled-on-ubuntu.html#installation-steps"&gt;xrpl.org&lt;/a&gt; provides a detailed step by step guide what to do. I followed each step as mentioned in that article.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start Windows Console&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;wsl&lt;/code&gt; to enter Linux command prompt&lt;/li&gt;
&lt;li&gt;Follow the &lt;a href="https://xrpl.org/install-rippled-on-ubuntu.html#installation-steps"&gt;Installation Steps&lt;/a&gt; command by command&lt;/li&gt;
&lt;li&gt;At step 4 you must change the command. Adjust &lt;code&gt;focal&lt;/code&gt; to &lt;code&gt;jammy&lt;/code&gt; due our previously installed Ubuntu Linux as mentioned in the installation guide&lt;/li&gt;
&lt;li&gt;Ensure every command runs successfully  and doesn't print any errors into your Console.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After rippled is successfully installed, you can run &lt;code&gt;rippled server_info | grep server_state&lt;/code&gt;. This shows current &lt;a href="https://xrpl.org/rippled-server-states.html"&gt;rippled server state&lt;/a&gt;. The initial network sync may take some minutes. The command shows "full" as soon as your server is fully caught-up with the network and could participate in validation, but is not doing so (because it has not been configured as a validator). If you plan to run your fresh node as validator you should follow the guide &lt;a href="https://xrpl.org/run-rippled-as-a-validator.html#run-rippled-as-a-validator"&gt;Run rippled as a Validator&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Congrats! You're now running rippled on your own machine 🎉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helpful commands and resources&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stop a running Linux instance: Run &lt;code&gt;wsl --shutdown&lt;/code&gt; in a Windows Console&lt;/li&gt;
&lt;li&gt;Linux "Task-Manager": &lt;code&gt;htop&lt;/code&gt;. Ensure your machine provides enough RAM.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/windows/wsl/basic-commands"&gt;Basic commands for WSL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://xrplf.github.io/xrpl-node-configurator/#/"&gt;Node Configurator&lt;/a&gt; assists you generating a rippled.cfg config for your node&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Adding support for Xahau to our XRPL project</title>
      <dc:creator>SchlaubiDev</dc:creator>
      <pubDate>Thu, 19 Oct 2023 12:15:37 +0000</pubDate>
      <link>https://dev.to/schlaubidev/adding-support-for-xahau-to-our-xrpl-project-5579</link>
      <guid>https://dev.to/schlaubidev/adding-support-for-xahau-to-our-xrpl-project-5579</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;To add support for &lt;a href="https://xahau.network"&gt;Xahau&lt;/a&gt; we had to make some changes to our &lt;a href="https://xrpl.org"&gt;XRPL&lt;/a&gt; project &lt;a href="https://www.dallipay.com"&gt;DalliPay&lt;/a&gt;. The following may help you to update your own project.&lt;/p&gt;

&lt;h3&gt;
  
  
  Changes
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Support multiple ledgers (XRPL, Xahau)&lt;/li&gt;
&lt;li&gt;Calculate TX fees per transaction ("fee" command)&lt;/li&gt;
&lt;li&gt;Implement NetworkID&lt;/li&gt;
&lt;li&gt;Add "manual exchange rate"&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Disable integrated wallet faucet&lt;/del&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Support multiple ledgers (XRPL, Xahau)
&lt;/h3&gt;

&lt;p&gt;We added a small dropdown for users to switch between XRPL and Xahau ledger and endpoints (Eg. Testnet, Mainnet). Users are also able to add custom endpoints.&lt;br&gt;
Xahau and XRPLs consumer API is mostly identical. Therefor our Xahau.Ledger class inherits from Xrpl.Ledger and differences like the native currency (XAH instead of XRP) are defined in Xahau.Ledger class.&lt;br&gt;
Due the added support for multiple ledgers, we had to separate available ledger explorers. For XRPL DalliPay supports Bithomp, XRPSCAN and xrpl.org. For Xahau another one was added.&lt;/p&gt;

&lt;h3&gt;
  
  
  Calculate TX fees per transaction (Hook fees)
&lt;/h3&gt;

&lt;p&gt;On XRPL the +/- same fee can be applied to all transactions (tx) sent in a small timeframe. On Xahau the fees vary heavily due different hooks involved. Every executed hook increases the tx fee needed. Therefore the fee must be calculated per tx. Xahau offers a WebSocket command "fee" for that. See &lt;a href="https://xrpl-hooks.readme.io/docs/hook-fees"&gt;Hook Fees&lt;/a&gt; for technical details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implement NetworkID
&lt;/h3&gt;

&lt;p&gt;XRPL supports a &lt;a href="https://xrpl.org/transaction-common-fields.html#networkid-field"&gt;NetworkID field&lt;/a&gt; which wasn't implemented in DalliPay before. For every tx on Xahau the correct value must been set for that field.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Xahau Mainnet (NetworkID 21337)&lt;/li&gt;
&lt;li&gt;Xahau Testnet (NetworkID 21338)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Add "manual exchange rate"
&lt;/h3&gt;

&lt;p&gt;To calculate fiat amounts of ledger transactions and vice versa, DalliPay needs an exchange API to get current exchange rates. Due there isn't one available at the time of this writing, we decided to add a new feature "manual exchange rate" to let the user enter an exchange rate. Exchange rates may be available from various sources and websites.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disable integrated wallet faucet
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Updated 2023-10-20&lt;/strong&gt;: The same API for Xahau is available at HTTP POST &lt;a href="https://xahau-test.net/accounts"&gt;https://xahau-test.net/accounts&lt;/a&gt;. Our used lib xrpl4j adds "/accounts" internally. Therefor &lt;a href="https://xahau-test.net"&gt;https://xahau-test.net&lt;/a&gt; must be passed to &lt;code&gt;FaucetClient.construct()&lt;/code&gt; to successfully fund a test wallet.&lt;br&gt;
&lt;strong&gt;Outdated&lt;/strong&gt;: For XRPL DalliPay offers an integrated way to create test wallets and fund them for various testnets. Due Xahau currently uses a different API, we decided to disable that feature for Xahau at the moment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://xahau-test.net/faucet"&gt;Web UI faucet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://xahau-test.net/newcreds"&gt;REST API&lt;/a&gt; (HTTP POST)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Helpful resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hooks.xrpl.org"&gt;XRPL Hooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://xrpl-hooks.readme.io"&gt;XRPL Hooks documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hooks-testnet-v3.xrpl-labs.com"&gt;Xahau Testnet&lt;/a&gt;  with faucet and explorer&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Integrating XRPL into Accounting Systems</title>
      <dc:creator>SchlaubiDev</dc:creator>
      <pubDate>Mon, 13 Jun 2022 09:24:35 +0000</pubDate>
      <link>https://dev.to/schlaubidev/integrating-xrpl-into-accounting-systems-1jj7</link>
      <guid>https://dev.to/schlaubidev/integrating-xrpl-into-accounting-systems-1jj7</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/radynamics/CryptoIso20022Interop"&gt;CryptoIso20022 Interop&lt;/a&gt; enables interoperability between &lt;a href="https://www.iso20022.org"&gt;ISO 20022&lt;/a&gt; file formats and cryptocurrency payments. It aims to facilitate sending and processing received crypto payments within existing financial software's ISO 20022 capabilities.&lt;/p&gt;

&lt;p&gt;As a &lt;strong&gt;&lt;em&gt;payer&lt;/em&gt;&lt;/strong&gt; you can import pain.001 xml files and transform payment instructions into cryptocurrency payments. For every transaction you like to send using cryptocurrency you must define a cryptocurrency address (receiver wallet) for a given iban or proprietary account number.&lt;/p&gt;

&lt;p&gt;As a &lt;strong&gt;&lt;em&gt;payee&lt;/em&gt;&lt;/strong&gt; you can fetch received cryptocurrency payments from your wallet and transform received payments into camt.054 xml format.&lt;/p&gt;

&lt;p&gt;Latest releases for various platforms are available for &lt;a href="https://github.com/radynamics/CryptoIso20022Interop/releases"&gt;download&lt;/a&gt;. An overview is shown in a short YouTube &lt;a href="https://www.youtube.com/watch?v=-u307nu72SQ"&gt;video&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Daily business for SMEs handling payments...
&lt;/h2&gt;

&lt;p&gt;... can get complicated. There are multiple hurdles users have to deal with. Some of the most obvious are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Night, Weekend &amp;amp; Holiday processing&lt;/strong&gt; is not or only limited offered by banks. "express" processing comes often with additional fees.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;International payments&lt;/strong&gt; often take several days or even weeks. Exchange rates are unknown until a bank finishes their own process. Customers internal business processes are interrupted and need to wait. User has to organize parallel interrupted payment workflows and keep status up to date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lack of banking integration&lt;/strong&gt; forces user to deal with various payment file import and exports. For status updates user has to login to his online bank periodically. Dealing with multiple bank accounts, platforms and maybe different formats make this even more painful.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Global migration to ISO 20022 as a global payment message standard simplifies payments for financial institutions. For users in accounting a lot of issues remain.&lt;/p&gt;

&lt;h2&gt;
  
  
  XRPL Integration – take advantages
&lt;/h2&gt;

&lt;p&gt;CryptoIso20022 Interop replaces the "banking side" of these business workflows with cryptocurrency networks (XRPL). That improves various aspects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Night, Weekend &amp;amp; Holiday processing&lt;/strong&gt; isn't an issue anymore. Payments are sent in real-time - 24/7/365. More automation leads to less errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;International payments&lt;/strong&gt; are equally simple and cheap as domestic payments are. Exchange rates are known in advance. Payment settlement just takes a few seconds. Customers business processes aren't interrupted anymore.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration is improved&lt;/strong&gt; due sending and receiving payments can be integrated into existing business processes. Dealing with multiple wallets (bank accounts) is simplified.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Better integration also improves user experience in payments such as for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check sender balance in advance&lt;/li&gt;
&lt;li&gt;Integrated fraud prevention&lt;/li&gt;
&lt;li&gt;Warn about duplicate (very similar) payments to same receiver&lt;/li&gt;
&lt;li&gt;Warn about nonexistent/invalid wallets&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Dealing with exchange rates
&lt;/h2&gt;

&lt;p&gt;As a &lt;strong&gt;&lt;em&gt;payer&lt;/em&gt;&lt;/strong&gt; your pain.001 xml files can contain payments in various currencies. Amounts are converted into XRP using current exchange rates. The XRP equivalent amount of a payment instruction is sent over XRPL. If an accounting software can export XRP as regular foreign currency into pain.001 xml, no exchange rate is applied.&lt;/p&gt;

&lt;p&gt;As a &lt;strong&gt;&lt;em&gt;payee&lt;/em&gt;&lt;/strong&gt; you can choose into which target (export) currency you would like to convert received payments. For every payment, the software looks up the exchange rate at the time the payment was received. Using that exchange rate, received amounts are converted into target currency for export into camt.054 xml file. If an accounting software can import XRP as regular foreign currency, XRP can also be used as target currency. The list of available currencies is defined by 'XRPL price oracle' in options section.&lt;/p&gt;

</description>
      <category>xrpl</category>
      <category>xrp</category>
      <category>iso20022</category>
      <category>defi</category>
    </item>
  </channel>
</rss>
