7 Binary Options – Binary Options Software

What's new in macOS 11, Big Sur!

It's that time of year again, and we've got a new version of macOS on our hands! This year we've finally jumped off the 10.xx naming scheme and now going to 11! And with that, a lot has changed under the hood in macOS.
As with previous years, we'll be going over what's changed in macOS and what you should be aware of as a macOS and Hackintosh enthusiast.

Has Nvidia Support finally arrived?

Sadly every year I have to answer the obligatory question, no there is no new Nvidia support. Currently Nvidia's Kepler line is the only natively supported gen.
However macOS 11 makes some interesting changes to the boot process, specifically moving GPU drivers into stage 2 of booting. Why this is relevant is due to Apple's initial reason for killing off Web Drivers: Secure boot. What I mean is that secure boot cannot work with Nvidia's Web Drivers due to how early Nvidia's drivers have to initialize at, and thus Apple refused to sign the binaries. With Big Sur, there could be 3rd party GPUs however the chances are still super slim but slightly higher than with 10.14 and 10.15.

What has changed on the surface

A whole new iOS-like UI

Love it or hate it, we've got a new UI more reminiscent of iOS 14 with hints of skeuomorphism(A somewhat subtle call back to previous mac UIs which have neat details in the icons)
You can check out Apple's site to get a better idea:

macOS Snapshotting

A feature initially baked into APFS back in 2017 with the release of macOS 10.13, High Sierra, now macOS's main System volume has become both read-only and snapshotted. What this means is:
However there are a few things to note with this new enforcement of snapshotting:

What has changed under the hood

Quite a few things actually! Both in good and bad ways unfortunately.

New Kernel Cache system: KernelCollections!

So for the past 15 years, macOS has been using the Prelinked Kernel as a form of Kernel and Kext caching. And with macOS Big Sur's new Read-only, snapshot based system volume, a new version of caching has be developed: KernelCollections!
How this differs to previous OSes:

Secure Boot Changes

With regards to Secure Boot, now all officially supported Macs will also now support some form of Secure Boot even if there's no T2 present. This is now done in 2 stages:
While technically these security features are optional and can be disabled after installation, many features including OS updates will no longer work reliably once disabled. This is due to the heavy reliance of snapshots for OS updates, as mentioned above and so we highly encourage all users to ensure at minimum SecureBootModel is set to Default or higher.

No more symbols required

This point is the most important part, as this is what we use for kext injection in OpenCore. Currently Apple has left symbols in place seemingly for debugging purposes however this is a bit worrying as Apple could outright remove symbols in later versions of macOS. But for Big Sur's cycle, we'll be good on that end however we'll be keeping an eye on future releases of macOS.

New Kernel Requirements

With this update, the AvoidRuntimeDefrag Booter quirk in OpenCore broke. Because of this, the macOS kernel will fall flat when trying to boot. Reason for this is due to cpu_count_enabled_logical_processors requiring the MADT (APIC) table, and so OpenCore will now ensure this table is made accessible to the kernel. Users will however need a build of OpenCore 0.6.0 with commit bb12f5f or newer to resolve this issue.
Additionally, both Kernel Allocation requirements and Secure Boot have also broken with Big Sur due to the new caching system discussed above. Thankfully these have also been resolved in OpenCore 0.6.3.
To check your OpenCore version, run the following in terminal:
nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
If you're not up-to-date and running OpenCore 0.6.3+, see here on how to upgrade OpenCore: Updating OpenCore, Kexts and macOS

Broken Kexts in Big Sur

Unfortunately with the aforementioned KernelCollections, some kexts have unfortunately broken or have been hindered in some way. The main kexts that currently have issues are anything relying on Lilu's userspace patching functionality:
Thankfully most important kexts rely on kernelspace patcher which is now in fact working again.

MSI Navi installer Bug Resolved

For those receiving boot failures in the installer due to having an MSI Navi GPU installed, macOS Big Sur has finally resolved this issue!

New AMD OS X Kernel Patches

For those running on AMD-Based CPUs, you'll want to also update your kernel patches as well since patches have been rewritten for macOS Big Sur support:

Other notable Hackintosh issues

Several SMBIOS have been dropped

Big Sur dropped a few Ivy Bridge and Haswell based SMBIOS from macOS, so see below that yours wasn't dropped:
If your SMBIOS was supported in Catalina and isn't included above, you're good to go! We also have a more in-depth page here: Choosing the right SMBIOS
For those wanting a simple translation for their Ivy and Haswell Machines:

Dropped hardware

Currently only certain hardware has been officially dropped:

Extra long install process

Due to the new snapshot-based OS, installation now takes some extra time with sealing. If you get stuck at Forcing CS_RUNTIME for entitlement, do not shutdown. This will corrupt your install and break the sealing process, so please be patient.

X79 and X99 Boot issues

With Big Sur, IOPCIFamily went through a decent rewriting causing many X79 and X99 boards to fail to boot as well as panic on IOPCIFamily. To resolve this issue, you'll need to disable the unused uncore bridge:
You can also find prebuilts here for those who do not wish to compile the file themselves:

New RTC requirements

With macOS Big Sur, AppleRTC has become much more picky on making sure your OEM correctly mapped the RTC regions in your ACPI tables. This is mainly relevant on Intel's HEDT series boards, I documented how to patch said RTC regions in OpenCorePkg:
For those having boot issues on X99 and X299, this section is super important; you'll likely get stuck at PCI Configuration Begin. You can also find prebuilts here for those who do not wish to compile the file themselves:

SATA Issues

For some reason, Apple removed the AppleIntelPchSeriesAHCI class from AppleAHCIPort.kext. Due to the outright removal of the class, trying to spoof to another ID (generally done by SATA-unsupported.kext) can fail for many and create instability for others. * A partial fix is to block Big Sur's AppleAHCIPort.kext and inject Catalina's version with any conflicting symbols being patched. You can find a sample kext here: Catalina's patched AppleAHCIPort.kext * This will work in both Catalina and Big Sur so you can remove SATA-unsupported if you want. However we recommend setting the MinKernel value to 20.0.0 to avoid any potential issues.

Legacy GPU Patches currently unavailable

Due to major changes in many frameworks around GPUs, those using ASentientBot's legacy GPU patches are currently out of luck. We either recommend users with these older GPUs stay on Catalina until further developments arise or buy an officially supported GPU

What’s new in the Hackintosh scene?

Dortania: a new organization has appeared

As many of you have probably noticed, a new organization focusing on documenting the hackintoshing process has appeared. Originally under my alias, Khronokernel, I started to transition my guides over to this new family as a way to concentrate the vast amount of information around Hackintoshes to both ease users and give a single trusted source for information.
We work quite closely with the community and developers to ensure information's correct, up-to-date and of the best standards. While not perfect in every way, we hope to be the go-to resource for reliable Hackintosh information.
And for the times our information is either outdated, missing context or generally needs improving, we have our bug tracker to allow the community to more easily bring attention to issues and speak directly with the authors:

Dortania's Build Repo

For those who either want to run the lastest builds of a kext or need an easy way to test old builds of something, Dortania's Build Repo is for you!
Kexts here are built right after commit, and currently supports most of Acidanthera's kexts and some 3rd party devs as well. If you'd like to add support for more kexts, feel free to PR: Build Repo source

True legacy macOS Support!

As of OpenCore's latest versioning, 0.6.2, you can now boot every version of x86-based builds of OS X/macOS! A huge achievement on @Goldfish64's part, we now support every major version of kernel cache both 32 and 64-bit wise. This means machines like Yonah and newer should work great with OpenCore and you can even relive the old days of OS X like OS X 10.4!
And Dortania guides have been updated accordingly to accommodate for builds of those eras, we hope you get as much enjoyment going back as we did working on this project!

Intel Wireless: More native than ever!

Another amazing step forward in the Hackintosh community, near-native Intel Wifi support! Thanks to the endless work on many contributors of the OpenIntelWireless project, we can now use Apple's built-in IO80211 framework to have near identical support to those of Broadcom wireless cards including features like network access in recovery and control center support.
For more info on the developments, please see the itlwm project on GitHub: itlwm

Clover's revival? A frankestien of a bootloader

As many in the community have seen, a new bootloader popped up back in April of 2019 called OpenCore. This bootloader was made by the same people behind projects such as Lilu, WhateverGreen, AppleALC and many other extremely important utilities for both the Mac and Hackintosh community. OpenCore's design had been properly thought out with security auditing and proper road mapping laid down, it was clear that this was to be the next stage of hackintoshing for the years we have left with x86.
And now lets bring this back to the old crowd favorite, Clover. Clover has been having a rough time of recent both with the community and stability wise, with many devs jumping ship to OpenCore and Clover's stability breaking more and more with C++ rewrites, it was clear Clover was on its last legs. Interestingly enough, the community didn't want Clover to die, similarly to how Chameleon lived on through Enoch. And thus, we now have the Clover OpenCore integration project(Now merged into Master with r5123+).
The goal is to combine OpenCore into Clover allowing the project to live a bit longer, as Clover's current state can no longer boot macOS Big Sur or older versions of OS X such as 10.6. As of writing, this project seems to be a bit confusing as there seems to be little reason to actually support Clover. Many of Clover's properties have feature-parity in OpenCore and trying to combine both C++ and C ruins many of the features and benefits either languages provide. The main feature OpenCore does not support is macOS-only ACPI injection, however the reasoning is covered here: Does OpenCore always inject SMBIOS and ACPI data into other OSes?

Death of x86 and the future of Hackintoshing

With macOS Big Sur, a big turning point is about to happen with Apple and their Macs. As we know it, Apple will be shifting to in-house designed Apple Silicon Macs(Really just ARM) and thus x86 machines will slowly be phased out of their lineup within 2 years.
What does this mean for both x86 based Macs and Hackintoshing in general? Well we can expect about 5 years of proper OS support for the iMac20,x series which released earlier this year with an extra 2 years of security updates. After this, Apple will most likely stop shipping x86 builds of macOS and hackintoshing as we know it will have passed away.
For those still in denial and hope something like ARM Hackintoshes will arrive, please consider the following:
So while we may be heart broken the journey is coming to a stop in the somewhat near future, hackintoshing will still be a time piece in Apple's history. So enjoy it now while we still can, and we here at Dortania will still continue supporting the community with our guides till the very end!

Getting ready for macOS 11, Big Sur

This will be your short run down if you skipped the above:
For the last 2, see here on how to update: Updating OpenCore, Kexts and macOS
In regards to downloading Big Sur, currently gibMacOS in macOS or Apple's own software updater are the most reliable methods for grabbing the installer. Windows and Linux support is still unknown so please stand by as we continue to look into this situation, macrecovery.py may be more reliable if you require the recovery package.
And as with every year, the first few weeks to months of a new OS release are painful in the community. We highly advise users to stay away from Big Sur for first time installers. The reason is that we cannot determine whether issues are Apple related or with your specific machine, so it's best to install and debug a machine on a known working OS before testing out the new and shiny.
For more in-depth troubleshooting with Big Sur, see here: OpenCore and macOS 11: Big Sur
submitted by dracoflar to hackintosh [link] [comments]

CLI & GUI v0.17.1.3 'Oxygen Orion' released!

This is the CLI & GUI v0.17.1.3 'Oxygen Orion' point release. This release predominantly features bug fixes and performance improvements. Users, however, are recommended to upgrade, as it includes mitigations for the issue where transactions occasionally fail.

(Direct) download links (GUI)

(Direct) download links (CLI)

GPG signed hashes

We encourage users to check the integrity of the binaries and verify that they were signed by binaryFate's GPG key. A guide that walks you through this process can be found here for Windows and here for Linux and Mac OS X.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 # This GPG-signed message exists to confirm the SHA256 sums of Monero binaries. # # Please verify the signature against the key for binaryFate in the # source code repository (/utils/gpg_keys). # # ## CLI 38a04a7bd00733e9d943edba3004e44730c0848fe5e8a4fca4cb29c12d1e6b2f monero-android-armv7-v0.17.1.3.tar.bz2 0e94f58572646992ee21f01d291211ed3608e8a46ecb6612b378a2188390dba0 monero-android-armv8-v0.17.1.3.tar.bz2 ae1a1b61d7b4a06690cb22a3389bae5122c8581d47f3a02d303473498f405a1a monero-freebsd-x64-v0.17.1.3.tar.bz2 57d6f9c25bd1dbc9d6b39fcfb13260b21c5594b4334e8ed3b8922108730ee2f0 monero-linux-armv7-v0.17.1.3.tar.bz2 a0419993fbc6a5ca11bcd2e825acef13e429824f4d8c7ba4ec73ac446d2af2fb monero-linux-armv8-v0.17.1.3.tar.bz2 cf3fb693339caed43a935c890d71ecab5b89c430e778dc5ef0c3173c94e5bf64 monero-linux-x64-v0.17.1.3.tar.bz2 d107384ff7b1f77ee4db93940dbfda24d6045bf59c43169bc81a0118e3986bfa monero-linux-x86-v0.17.1.3.tar.bz2 79557c8bee30b229bda90bb9ee494097d639d60948fc2ad87a029359b56b1b48 monero-mac-x64-v0.17.1.3.tar.bz2 3eee0d0e896fb426ef92a141a95e36cb33ca7d1e1db3c1d4cb7383994af43a59 monero-win-x64-v0.17.1.3.zip c9e9dde61b33adccd7e794eba8ba29d820817213b40a2571282309d25e64e88a monero-win-x86-v0.17.1.3.zip # ## GUI 15ad80b2abb18ac2521398c4dad9b8bfea2e6fc535cf4ebcc60d99b8042d4fb2 monero-gui-install-win-x64-v0.17.1.3.exe 3bed02f9db5b7b2fe4115a636fecf0c6ec9079dd4e9284c8ce2c67d4996e2a4a monero-gui-linux-x64-v0.17.1.3.tar.bz2 23405534c7973a8d6908b76121b81894dc853039c942d7527d254dfde0bd2e8f monero-gui-mac-x64-v0.17.1.3.dmg 0a49ccccb561445f3d7ec0087ddc83a8b76f424fb7d5e0d725222f3639375ec4 monero-gui-win-x64-v0.17.1.3.zip # # # ~binaryFate -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEgaxZH+nEtlxYBq/D8K9NRioL35IFAl+oVkkACgkQ8K9NRioL 35Lmpw//Xs09T4917sbnRH/DW/ovpRyjF9dyN1ViuWQW91pJb+E3i9TY+wU3q85k LyTihDB5pV+3nYgKPL9TlLfaytJIQG0vYHykPWHVmYmvoIs9BLarGwaU3bjO0rh9 ST5GDMdvxmQ5Y1LTwVfKkmBJw26DAs0xAvjBX44oRQjjuUdH6JdLPsqa5Kb++NCM b453m5s8bT3Cw6w0eJB1FQEyQ5BoDrwYcFzzsS1ag/C4Ylq0l6CZfEambfOQvdUi 7D5Rywfhiz2t7cfn7LaoXb74KDA/B1bL+R1/KhCuFqxRTOQzq9IxRywh4VptAAMU UR7jFHFijOMoyggIbkD48JmAjlBnqIyQJt4D5gbHe+tSaSoKdgoTGBAmIvaCZIng jfn9pTNzIJbTptsQhhyZqQQIH87D8BctZfX7pREjJmMNGwN2jFxXqUNqYTso20E6 YLtC1mkZBBZ294xHqT1mQpfznc6uVJhhoJpta0eKxkr1ahrGvWBDGZeVhLswnBcq 9dafAkR14rdK1naiCsygb6hMvBqBohVu/bWuhycJcv6XRvlP7UHkR6R8+s6U4Tk2 zaJERQF+cHQpEak5aEJIvDlb/mxteGyvPkPyL7UmADEQh3C4nREwkDSdnitYnF+e HxJZkshoC98+YCkWUP4+JYOOT158jKao3u0laEOxVGOrPz1Nc64= =Ys4h -----END PGP SIGNATURE----- 

Upgrading (GUI)

Note that you should be able to utilize the automatic updater in the GUI that was recently added. A pop-up will appear shortly with the new binary.
In case you want to update manually, you ought to perform the following steps:
  1. Download the new binaries (the .zip file (Windows) or the tar.bz2 file (Mac OS X and Linux)) from the direct download links in this thread or from the official website. If you run active AV (AntiVirus) software, I'd recommend to apply this guide -> https://monero.stackexchange.com/questions/10798/my-antivirus-av-software-blocks-quarantines-the-monero-gui-wallet-is-there
  2. Extract the new binaries (the .zip file (Windows) or the tar.bz2 file (Mac OS X and Linux) you just downloaded) to a new directory / folder of your liking.
  3. Open monero-wallet-gui. It should automatically load your "old" wallet.
If, for some reason, the GUI doesn't automatically load your old wallet, you can open it as follows:
[1] On the second page of the wizard (first page is language selection) choose Open a wallet from file
[2] Now select your initial / original wallet. Note that, by default, the wallet files are located in Documents\Monero\ (Windows), Users//Monero/ (Mac OS X), or home//Monero/ (Linux).
Lastly, note that a blockchain resync is not needed, i.e., it will simply pick up where it left off.

Upgrading (CLI)

You ought to perform the following steps:
  1. Download the new binaries (the .zip file (Windows) or the tar.bz2 file (Mac OS X and Linux)) from the official website, the direct download links in this thread, or Github.
  2. Extract the new binaries to a new directory of your liking.
  3. Copy over the wallet files from the old directory (i.e. the v0.15.x.x, v0.16.x.x, or v0.17.x.x directory).
  4. Start monerod and monero-wallet-cli (in case you have to use your wallet).
Note that a blockchain resync is not needed. Thus, if you open monerod-v0.17.1.3, it will simply pick up where it left off.

Release notes (GUI)

Some highlights of this minor release are:
  • Android support (experimental)
  • Linux binary is now reproducible (experimental)
  • Simple mode: transaction reliability improvements
  • New transaction confirmation dialog
  • Wizard: minor design changes
  • Linux: high DPI support
  • Fix "can't connect to daemon" issue
  • Minor bug fixes
Some highlights of this major release are:
  • Support for CLSAG transaction format
  • Socks5 proxy support, automatically enabled on Tails
  • Simple mode transactions are sent trough local daemon, improved reliability
  • Portable mode, save wallets + config to "storage" folder
  • History page: improvements, incoming / outgoing labels
  • Transfer: new success dialog
  • CMake build system improvements
  • Windows cross compilation support using Docker
  • Various minor bug and UI fixes
Note that you can find a full change log here.

Release notes (CLI)

Some highlights of this minor release are:
  • Add support for I2P and Tor seed nodes (--tx-proxy)
  • Add --ban-list daemon option to ban a list of IP addresses
  • Switch to Dandelion++ fluff mode if no out connections for stem mode
  • Fix a bug with relay_tx
  • Fix a rare readline related crash
  • Use /16 filtering on IPv4-within-IPv6 addresses
  • Give all hosts the same chance of being picked for connecting
  • Minor bugfixes
Some highlights of this major release are:
  • Support for CLSAG transaction format
  • Deterministic unlock times
  • Enforce claiming maximum coinbase amount
  • Serialization format changes
  • Remove most usage of Boost library
  • Always send raw transactions through P2P, don't use bootstrap daemon
  • Update InProofV1, OutProofV1, and ReserveProofV1 to V2
  • ASM optimizations for wallet refresh (macOS / Linux)
  • Randomized delay when forwarding txes from i2p/tor -> ipv4/6
  • New show_qr_code wallet command for CLI
  • Add ZMQ/Pub support for txpool_add and chain_main events
  • Various bug fixes and performance improvements
Note that you can find a full change log here.

Further remarks

  • A guide on pruning can be found here.
  • Ledger Monero users, please be aware that version 1.7.4 of the Ledger Monero App is required in order to properly use CLI or GUI v0.17.1.3.

Guides on how to get started (GUI)

https://github.com/monero-ecosystem/monero-GUI-guide/blob/mastemonero-GUI-guide.md
Older guides: (These were written for older versions, but are still somewhat applicable)
Sheep’s Noob guide to Monero GUI in Tails
https://medium.com/@Electricsheep56/the-monero-gui-wallet-broken-down-in-plain-english-bd2889b8c202

Ledger GUI guides:

How do I generate a Ledger Monero wallet with the GUI (monero-wallet-gui)?
How do I restore / recreate my Ledger Monero wallet?

Trezor GUI guides:

How do I generate a Trezor Monero wallet with the GUI (monero-wallet-gui)?
How to use Monero with Trezor - by Trezor
How do I restore / recreate my Trezor Monero wallet?

Ledger & Trezor CLI guides

Guides to resolve common issues (GUI)

My antivirus (AV) software blocks / quarantines the Monero GUI wallet, is there a work around I can utilize?
I am missing (not seeing) a transaction to (in) the GUI (zero balance)
Transaction stuck as “pending” in the GUI
How do I move the blockchain (data.mdb) to a different directory during (or after) the initial sync without losing the progress?
I am using the GUI and my daemon doesn't start anymore
My GUI feels buggy / freezes all the time
The GUI uses all my bandwidth and I can't browse anymore or use another application that requires internet connection
How do I change the language of the 25 word mnemonic seed in the GUI or CLI?
I am using remote node, but the GUI still syncs blockchain?

Using the GUI with a remote node

In the wizard, you can either select Simple mode or Simple mode (bootstrap) to utilize this functionality. Note that the GUI developers / contributors recommend to use Simple mode (bootstrap) as this mode will eventually use your own (local) node, thereby contributing to the strength and decentralization of the network. Lastly, if you manually want to set a remote node, you ought to use Advanced mode. A guide can be found here:
https://www.getmonero.org/resources/user-guides/remote_node_gui.html

Adding a new language to the GUI

https://github.com/monero-ecosystem/monero-translations/blob/masteweblate.md
If, after reading all these guides, you still require help, please post your issue in this thread and describe it in as much detail as possible. Also, feel free to post any other guides that could help people.
submitted by dEBRUYNE_1 to Monero [link] [comments]

Red Hat OpenShift Container Platform Instruction Manual for Windows Powershell

Introduction to the manual
This manual is made to guide you step by step in setting up an OpenShift cloud environment on your own device. It will tell you what needs to be done, when it needs to be done, what you will be doing and why you will be doing it, all in one convenient manual that is made for Windows users. Although if you'd want to try it on Linux or MacOS we did add the commands necesary to get the CodeReady Containers to run on your operating system. Be warned however there are some system requirements that are necessary to run the CodeReady Containers that we will be using. These requirements are specified within chapter Minimum system requirements.
This manual is written for everyone with an interest in the Red Hat OpenShift Container Platform and has at least a basic understanding of the command line within PowerShell on Windows. Even though it is possible to use most of the manual for Linux or MacOS we will focus on how to do this within Windows.
If you follow this manual you will be able to do the following items by yourself:
● Installing the CodeReady Containers
● Updating OpenShift
● Configuring a CodeReady Container
● Configuring the DNS
● Accessing the OpenShift cluster
● Deploying the Mediawiki application
What is the OpenShift Container platform?
Red Hat OpenShift is a cloud development Platform as a Service (PaaS). It enables developers to develop and deploy their applications on a cloud infrastructure. It is based on the Kubernetes platform and is widely used by developers and IT operations worldwide. The OpenShift Container platform makes use of CodeReady Containers. CodeReady Containers are pre-configured containers that can be used for developing and testing purposes. There are also CodeReady Workspaces, these workspaces are used to provide any member of the development or IT team with a consistent, secure, and zero-configuration development environment.
The OpenShift Container Platform is widely used because it helps the programmers and developers make their application faster because of CodeReady Containers and CodeReady Workspaces and it also allows them to test their application in the same environment. One of the advantages provided by OpenShift is the efficient container orchestration. This allows for faster container provisioning, deploying and management. It does this by streamlining and automating the automation process.
What knowledge is required or recommended to proceed with the installation?
To be able to follow this manual some knowledge is mandatory, because most of the commands are done within the Command Line interface it is necessary to know how it works and how you can browse through files/folders. If you either don’t have this basic knowledge or have trouble with the basic Command Line Interface commands from PowerShell, then a cheat sheet might offer some help. We recommend the following cheat sheet for windows:
Https://www.sans.org/security-resources/sec560/windows\_command\_line\_sheet\_v1.pdf
Another option is to read through the operating system’s documentation or introduction guides. Though the documentation can be overwhelming by the sheer amount of commands.
Microsoft: https://docs.microsoft.com/en-us/windows-serveadministration/windows-commands/windows-commands
MacOS
Https://www.makeuseof.com/tag/mac-terminal-commands-cheat-sheet/
Linux
https://ubuntu.com/tutorials/command-line-for-beginners#2-a-brief-history-lesson https://www.guru99.com/linux-commands-cheat-sheet.html
http://cc.iiti.ac.in/docs/linuxcommands.pdf
Aside from the required knowledge there are also some things that can be helpful to know just to make the use of OpenShift a bit simpler. This consists of some general knowledge on PaaS like Dockers and Kubernetes.
Docker https://www.docker.com/
Kubernetes https://kubernetes.io/

System requirements

Minimum System requirements

The minimum system requirements for the Red Hat OpenShift CodeReady Containers has the following minimum hardware:
Hardware requirements
Code Ready Containers requires the following system resources:
● 4 virtual CPU’s
● 9 GB of free random-access memory
● 35 GB of storage space
● Physical CPU with Hyper-V (intel) or SVM mode (AMD) this has to be enabled in the bios
Software requirements
The minimum system requirements for the Red Hat OpenShift CodeReady Containers has the following minimum operating system requirements:
Microsoft Windows
On Microsoft Windows, the Red Hat OpenShift CodeReady Containers requires the Windows 10 Pro Fall Creators Update (version 1709) or newer. CodeReady Containers does not work on earlier versions or other editions of Microsoft Windows. Microsoft Windows 10 Home Edition is not supported.
macOS
On macOS, the Red Hat OpenShift CodeReady Containers requires macOS 10.12 Sierra or newer.
Linux
On Linux, the Red Hat OpenShift CodeReady Containers is only supported on Red Hat Enterprise Linux/CentOS 7.5 or newer and on the latest two stable Fedora releases.
When using Red Hat Enterprise Linux, the machine running CodeReady Containers must be registered with the Red Hat Customer Portal.
Ubuntu 18.04 LTS or newer and Debian 10 or newer are not officially supported and may require manual set up of the host machine.

Required additional software packages for Linux

The CodeReady Containers on Linux require the libvirt and Network Manager packages to run. Consult the following table to find the command used to install these packages for your Linux distribution:
Table 1.1 Package installation commands by distribution
Linux Distribution Installation command
Fedora Sudo dnf install NetworkManager
Red Hat Enterprise Linux/CentOS Su -c 'yum install NetworkManager'
Debian/Ubuntu Sudo apt install qemu-kvm libvirt-daemonlibvirt-daemon-system network-manage

Installation

Getting started with the installation

To install CodeReady Containers a few steps must be undertaken. Because an OpenShift account is necessary to use the application this will be the first step. An account can be made on “https://www.openshift.com/”, where you need to press login and after that select the option “Create one now”
After making an account the next step is to download the latest release of CodeReady Containers and the pulled secret on “https://cloud.redhat.com/openshift/install/crc/installer-provisioned”. Make sure to download the version corresponding to your platform and/or operating system. After downloading the right version, the contents have to be extracted from the archive to a location in your $PATH. The pulled secret should be saved because it is needed later.
The command line interface has to be opened before we can continue with the installation. For windows we will use PowerShell. All the commands we use during the installation procedure of this guide are going to be done in this command line interface unless stated otherwise. To be able to run the commands within the command line interface, use the command line interface to go to the location in your $PATH where you extracted the CodeReady zip.
If you have installed an outdated version and you wish to update, then you can delete the existing CodeReady Containers virtual machine with the $crc delete command. After deleting the container, you must replace the old crc binary with a newly downloaded binary of the latest release.
C:\Users\[username]\$PATH>crc delete 
When you have done the previous steps please confirm that the correct and up to date crc binary is in use by checking it with the $crc version command, this should provide you with the version that is currently installed.
C:\Users\[username]\$PATH>crc version 
To set up the host operating system for the CodeReady Containers virtual machine you have to run the $crc setup command. After running crc setup, crc start will create a minimal OpenShift 4 cluster in the folder where the executable is located.
C:\Users\[username]>crc setup 

Setting up CodeReady Containers

Now we need to set up the new CodeReady Containers release with the $crc setup command. This command will perform the operations necessary to run the CodeReady Containers and create the ~/.crc directory if it did not previously exist. In the process you have to supply your pulled secret, once this process is completed you have to reboot your system. When the system has restarted you can start the new CodeReady Containers virtual machine with the $crc start command. The $crc start command starts the CodeReady virtual machine and OpenShift cluster.
You cannot change the configuration of an existing CodeReady Containers virtual machine. So if you have a CodeReady Containers virtual machine and you want to make configuration changes you need to delete the virtual machine with the $crc delete command and create a new virtual machine and start that one with the configuration changes. Take note that deleting the virtual machine will also delete the data stored in the CodeReady Containers. So, to prevent data loss we recommend you save the data you wish to keep. Also keep in mind that it is not necessary to change the default configuration to start OpenShift.
C:\Users\[username]\$PATH>crc setup 
Before starting the machine, you need to keep in mind that it is not possible to make any changes to the virtual machine. For this tutorial however it is not necessary to change the configuration, if you don’t want to make any changes please continue by starting the machine with the crc start command.
C:\Users\[username]\$PATH>crc start 
\ it is possible that you will get a Nameserver error later on, if this is the case please start it with* crc start -n 1.1.1.1

Configuration

It is not is not necessary to change the default configuration and continue with this tutorial, this chapter is here for those that wish to do so and know what they are doing. However, for MacOS and Linux it is necessary to change the dns settings.

Configuring the CodeReady Containers

To start the configuration of the CodeReady Containers use the command crc config. This command allows you to configure the crc binary and the CodeReady virtual machine. The command has some requirements before it’s able to configure. This requirement is a subcommand, the available subcommands for this binary and virtual machine are:
get, this command allows you to see the values of a configurable property
set/unset, this command can be used for 2 things. To display the names of, or to set and/or unset values of several options and parameters. These parameters being:
○ Shell options
○ Shell attributes
○ Positional parameters
view, this command starts the configuration in read-only mode.
These commands need to operate on named configurable properties. To list all the available properties, you can run the command $crc config --help.
Throughout this manual we will use the $crc config command a few times to change some properties needed for the configuration.
There is also the possibility to use the crc config command to configure the behavior of the checks that’s done by the $crc start end $crc setup commands. By default, the startup checks will stop with the process if their conditions are not met. To bypass this potential issue, you can set the value of a property that starts with skip-check or warn-check to true to skip the check or warning instead of ending up with an error.
C:\Users\[username]\$PATH>crc config get C:\Users\[username]\$PATH>crc config set C:\Users\[username]\$PATH>crc config unset C:\Users\[username]\$PATH>crc config view C:\Users\[username]\$PATH>crc config --help 

Configuring the Virtual Machine

You can use the CPUs and memory properties to configure the default number of vCPU’s and amount of memory available for the virtual machine.
To increase the number of vCPU’s available to the virtual machine use the $crc config set CPUs . Keep in mind that the default number for the CPU’s is 4 and the number of vCPU’s you wish to assign must be equal or greater than the default value.
To increase the memory available to the virtual machine, use the $crc config set memory . Keep in mind that the default number for the memory is 9216 Mebibytes and the amount of memory you wish to assign must be equal or greater than the default value.
C:\Users\[username]\$PATH>crc config set CPUs  C:\Users\[username]\$PATH>crc config set memory > 

Configuring the DNS

Window / General DNS setup

There are two domain names used by the OpenShift cluster that are managed by the CodeReady Containers, these are:
crc.testing, this is the domain for the core OpenShift services.
apps-crc.testing, this is the domain used for accessing OpenShift applications that are deployed on the cluster.
Configuring the DNS settings in Windows is done by executing the crc setup. This command automatically adjusts the DNS configuration on the system. When executing crc start additional checks to verify the configuration will be executed.

macOS DNS setup

MacOS expects the following DNS configuration for the CodeReady Containers
● The CodeReady Containers creates a file that instructs the macOS to forward all DNS requests for the testing domain to the CodeReady Containers virtual machine. This file is created at /etc/resolvetesting.
● The oc binary requires the following CodeReady Containers entry to function properly, api.crc.testing adds an entry to /etc/hosts pointing at the VM IPaddress.

Linux DNS setup

CodeReady containers expect a slightly different DNS configuration. CodeReady Container expects the NetworkManager to manage networking. On Linux the NetworkManager uses dnsmasq through a configuration file, namely /etc/NetworkManageconf.d/crc-nm-dnsmasq.conf.
To set it up properly the dnsmasq instance has to forward the requests for crc.testing and apps-crc.testing domains to “192.168.130.11”. In the /etc/NetworkManageconf.d/crc-nm-dnsmasq.conf this will look like the following:
● Server=/crc. Testing/192.168.130.11
● Server=/apps-crc. Testing/192.168.130.11

Accessing the Openshift Cluster

Accessing the Openshift web console

To gain access to the OpenShift cluster running in the CodeReady virtual machine you need to make sure that the virtual machine is running before continuing with this chapter. The OpenShift clusters can be accessed through the OpenShift web console or the client binary(oc).
First you need to execute the $crc console command, this command will open your web browser and direct a tab to the web console. After that, you need to select the htpasswd_provider option in the OpenShift web console and log in as a developer user with the output provided by the crc start command.
It is also possible to view the password for kubeadmin and developer users by running the $crc console --credentials command. While you can access the cluster through the kubeadmin and developer users, it should be noted that the kubeadmin user should only be used for administrative tasks such as user management and the developer user for creating projects or OpenShift applications and the deployment of these applications.
C:\Users\[username]\$PATH>crc console C:\Users\[username]\$PATH>crc console --credentials 

Accessing the OpenShift cluster with oc

To gain access to the OpenShift cluster with the use of the oc command you need to complete several steps.
Step 1.
Execute the $crc oc-env command to print the command needed to add the cached oc binary to your PATH:
C:\Users\[username]\$PATH>crc oc-env 
Step 2.
Execute the printed command. The output will look something like the following:
PS C:\Users\OpenShift> crc oc-env $Env:PATH = "CC:\Users\OpenShift\.crc\bin\oc;$Env:PATH" # Run this command to configure your shell: # & crc oc-env | Invoke-Expression 
This means we have to execute* the command that the output gives us, in this case that is:
C:\Users\[username]\$PATH>crc oc-env | Invoke-Expression 
\this has to be executed every time you start; a solution is to move the oc binary to the same path as the crc binary*
To test if this step went correctly execute the following command, if it returns without errors oc is set up properly
C:\Users\[username]\$PATH>.\oc 
Step 3
Now you need to login as a developer user, this can be done using the following command:
$oc login -u developer https://api.crc.testing:6443
Keep in mind that the $crc start will provide you with the password that is needed to login with the developer user.
C:\Users\[username]\$PATH>oc login -u developer https://api.crc.testing:6443 
Step 4
The oc can now be used to interact with your OpenShift cluster. If you for instance want to verify if the OpenShift cluster Operators are available, you can execute the command
$oc get co 
Keep in mind that by default the CodeReady Containers disables the functions provided by the commands $machine-config and $monitoringOperators.
C:\Users\[username]\$PATH>oc get co 

Demonstration

Now that you are able to access the cluster, we will take you on a tour through some of the possibilities within OpenShift Container Platform.
We will start by creating a project. Within this project we will import an image, and with this image we are going to build an application. After building the application we will explain how upscaling and downscaling can be used within the created application.
As the next step we will show the user how to make changes in the network route. We also show how monitoring can be used within the platform, however within the current version of CodeReady Containers this has been disabled.
Lastly, we will show the user how to use user management within the platform.

Creating a project

To be able to create a project within the console you have to login on the cluster. If you have not yet done this, this can be done by running the command crc console in the command line and logging in with the login data from before.
When you are logged in as admin, switch to Developer. If you're logged in as a developer, you don't have to switch. Switching between users can be done with the dropdown menu top left.
Now that you are properly logged in press the dropdown menu shown in the image below, from there click on create a project.
https://preview.redd.it/ytax8qocitv51.png?width=658&format=png&auto=webp&s=72d143733f545cf8731a3cca7cafa58c6507ace2
When you press the correct button, the following image will pop up. Here you can give your project a name and description. We chose to name it CodeReady with a displayname CodeReady Container.
https://preview.redd.it/vtaxadwditv51.png?width=594&format=png&auto=webp&s=e3b004bab39fb3b732d96198ed55fdd99259f210

Importing image

The Containers in OpenShift Container Platform are based on OCI or Docker formatted images. An image is a binary that contains everything needed to run a container as well as the metadata of the requirements needed for the container.
Within the OpenShift Container Platform it’s possible to obtain images in a number of ways. There is an integrated Docker registry that offers the possibility to download new images “on the fly”. In addition, OpenShift Container Platform can use third party registries such as:
- Https://hub.docker.com/
- Https://catalog.redhat.com/software/containers/search
Within this manual we are going to import an image from the Red Hat container catalog. In this example we’ll be using MediaWiki.
Search for the application in https://catalog.redhat.com/software/containers/search

https://preview.redd.it/c4mrbs0fitv51.png?width=672&format=png&auto=webp&s=f708f0542b53a9abf779be2d91d89cf09e9d2895
Navigate to “Get this image”
Follow the steps to “create a registry service account”, after that you can copy the YAML.
https://preview.redd.it/b4rrklqfitv51.png?width=1323&format=png&auto=webp&s=7a2eb14a3a1ba273b166e03e1410f06fd9ee1968
After the YAML has been copied we will go to the topology view and click on the YAML button
https://preview.redd.it/k3qzu8dgitv51.png?width=869&format=png&auto=webp&s=b1fefec67703d0a905b00765f0047fe7c6c0735b
Then we have to paste in the YAML, put in the name, namespace and your pull secret name (which you created through your registry account) and click on create.
https://preview.redd.it/iz48kltgitv51.png?width=781&format=png&auto=webp&s=4effc12e07bd294f64a326928804d9a931e4d2bd
Run the import command within powershell
$oc import-image openshift4/mediawiki --from=registry.redhat.io/openshift4/mediawiki --confirm imagestream.image.openshift.io/mediawiki imported 

Creating and managing an application

There are a few ways to create and manage applications. Within this demonstration we’ll show how to create an application from the previously imported image.

Creating the application

To create an image with the previously imported image go back to the console and topology. From here on select container image.
https://preview.redd.it/6506ea4iitv51.png?width=869&format=png&auto=webp&s=c0231d70bb16c76cd131e6b71256e93550cc8b37
For the option image you'll want to select the “image stream tag from internal registry” option. Give the application a name and then create the deployment.
https://preview.redd.it/tk72idniitv51.png?width=813&format=png&auto=webp&s=a4e662cf7b96604d84df9d04ab9b90b5436c803c
If everything went right during the creating process you should see the following, this means that the application is successfully running.
https://preview.redd.it/ovv9l85jitv51.png?width=901&format=png&auto=webp&s=f78f350207add0b8a979b6da931ff29ffa30128c

Scaling the application

In OpenShift there is a feature called autoscaling. There are two types of application scaling, namely vertical scaling, and horizontal scaling. Vertical scaling is adding only more CPU and hard disk and is no longer supported by OpenShift. Horizontal scaling is increasing the number of machines.
One of the ways to scale an application is by increasing the number of pods. This can be done by going to a pod within the view as seen in the previous step. By either pressing the up or down arrow more pods of the same application can be added. This is similar to horizontal scaling and can result in better performance when there are a lot of active users at the same time.
https://preview.redd.it/s6i1vbcrltv51.png?width=602&format=png&auto=webp&s=e62cbeeed116ba8c55704d61a990fc0d8f3cfaa1
In the picture above we see the number of nodes and pods and how many resources those nodes and pods are using. This is something to keep in mind if you want to scale up your application, the more you scale it up, the more resources it will take up.

https://preview.redd.it/quh037wmitv51.png?width=194&format=png&auto=webp&s=5e326647b223f3918c259b1602afa1b5fbbeea94

Network

Since OpenShift Container platform is built on Kubernetes it might be interesting to know some theory about its networking. Kubernetes, on which the OpenShift Container platform is built, ensures that the Pods within OpenShift can communicate with each other via the network and assigns them their own IP address. This makes all containers within the Pod behave as if they were on the same host. By giving each pod its own IP address, pods can be treated as physical hosts or virtual machines in terms of port mapping, networking, naming, service discovery, load balancing, application configuration and migration. To run multiple services such as front-end and back-end services, OpenShift Container Platform has a built-in DNS.
One of the changes that can be made to the networking of a Pod is the Route. We’ll show you how this can be done in this demonstration.
The Route is not the only thing that can be changed and or configured. Two other options that might be interesting but will not be demonstrated in this manual are:
- Ingress controller, Within OpenShift it is possible to set your own certificate. A user must have a certificate / key pair in PEM-encoded files, with the certificate signed by a trusted authority.
- Network policies, by default all pods in a project are accessible from other pods and network locations. To isolate one or more pods in a project, it is possible to create Network Policy objects in that project to indicate the allowed incoming connections. Project administrators can create and delete Network Policy objects within their own project.
There is a search function within the Container Platform. We’ll use this to search for the network routes and show how to add a new route.
https://preview.redd.it/8jkyhk8pitv51.png?width=769&format=png&auto=webp&s=9a8762df5bbae3d8a7c92db96b8cb70605a3d6da
You can add items that you use a lot to the navigation
https://preview.redd.it/t32sownqitv51.png?width=1598&format=png&auto=webp&s=6aab6f17bc9f871c591173493722eeae585a9232
For this example, we will add Routes to navigation.
https://preview.redd.it/pm3j7ljritv51.png?width=291&format=png&auto=webp&s=bc6fbda061afdd0780bbc72555d809b84a130b5b
Now that we’ve added Routes to the navigation, we can start the creation of the Route by clicking on “Create route”.
https://preview.redd.it/5lgecq0titv51.png?width=1603&format=png&auto=webp&s=d548789daaa6a8c7312a419393795b52da0e9f75
Fill in the name, select the service and the target port from the drop-down menu and click on Create.
https://preview.redd.it/qczgjc2uitv51.png?width=778&format=png&auto=webp&s=563f73f0dc548e3b5b2319ca97339e8f7b06c9d6
As you can see, we’ve successfully added the new route to our application.
https://preview.redd.it/gxfanp2vitv51.png?width=1588&format=png&auto=webp&s=1aae813d7ad0025f91013d884fcf62c5e7d109f1
Storage
OpenShift makes use of Persistent Storage, this type of storage uses persistent volume claims(PVC). PVC’s allow the developer to make persistent volumes without needing any knowledge about the underlying infrastructure.
Within this storage there are a few configuration options:
It is however important to know how to manually reclaim the persistent volumes, since if you delete PV the associated data will not be automatically deleted with it and therefore you cannot reassign the storage to another PV yet.
To manually reclaim the PV, you need to follow the following steps:
Step 1: Delete the PV, this can be done by executing the following command
$oc delete  
Step 2: Now you need to clean up the data on the associated storage asset
Step 3: Now you can delete the associated storage asset or if you with to reuse the same storage asset you can now create a PV with the storage asset definition.
It is also possible to directly change the reclaim policy within OpenShift, to do this you would need to follow the following steps:
Step 1: Get a list of the PVs in your cluster
$oc get pv 
This will give you a list of all the PV’s in your cluster and will display their following attributes: Name, Capacity, Accesmodes, Reclaimpolicy, Statusclaim, Storageclass, Reason and Age.
Step 2: Now choose the PV you wish to change and execute one of the following command’s, depending on your preferred policy:
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' 
In this example the reclaim policy will be changed to Retain.
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Recycle"}}' 
In this example the reclaim policy will be changed to Recycle.
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Delete"}}' 
In this example the reclaim policy will be changed to Delete.

Step 3: After this you can check the PV to verify the change by executing this command again:
$oc get pv 

Monitoring

Within Red Hat OpenShift there is the possibility to monitor the data that has been created by your containers, applications, and pods. To do so, click on the menu option in the top left corner. Check if you are logged in as Developer and click on “Monitoring”. Normally this function is not activated within the CodeReady containers, because it uses a lot of resources (Ram and CPU) to run.
https://preview.redd.it/an0wvn6zitv51.png?width=228&format=png&auto=webp&s=51abf8cc31bd763deb457d49514f99ee81d610ec
Once you have activated “Monitoring” you can change the “Time Range” and “Refresh Interval” in the top right corner of your screen. This will change the monitoring data on your screen.
https://preview.redd.it/e0yvzsh1jtv51.png?width=493&format=png&auto=webp&s=b2c563635cfa60ea7ce2f9c146aa994df6aa1c34
Within this function you can also monitor “Events”. These events are records of important information and are useful for monitoring and troubleshooting within the OpenShift Container Platform.
https://preview.redd.it/l90vkmp3jtv51.png?width=602&format=png&auto=webp&s=4e97f14bedaec7ededcdcda96e7823f77ced24c2

User management

According to the documentation of OpenShift is a user, an entity that interacts with the OpenShift Container Platform API. These can be a developer for developing applications or an administrator for managing the cluster. Users can be assigned to groups, which set the permissions applied to all the group’s members. For example, you can give API access to a group, which gives all members of the group API access.
There are multiple ways to create a user depending on the configured identity provider. The DenyAll identity provider is the default within OpenShift Container Platform. This default denies access for all the usernames and passwords.
First, we’re going to create a new user, the way this is done depends on the identity provider, this depends on the mapping method used as part of the identity provider configuration.
for more information on what mapping methods are and how they function:
https://docs.openshift.com/enterprise/3.1/install_config/configuring_authentication.html
With the default mapping method, the steps will be as following
$oc create user  
Next up, we’ll create an OpenShift Container Platform Identity. Use the name of the identity provider and the name that uniquely represents this identity in the scope of the identity provider:
$oc create identity : 
The is the name of the identity provider in the master configuration. For example, the following commands create an Identity with identity provider ldap_provider and the identity provider username mediawiki_s.
$oc create identity ldap_provider:mediawiki_s 
Create a useidentity mapping for the created user and identity:
$oc create useridentitymapping :  
For example, the following command maps the identity to the user:
$oc create useridentitymapping ldap_provider:mediawiki_s mediawiki 
Now were going to assign a role to this new user, this can be done by executing the following command:
$oc create clusterrolebinding  \ --clusterrole= --user= 
There is a --clusterrole option that can be used to give the user a specific role, like a cluster user with admin privileges. The cluster admin has access to all files and is able to manage the access level of other users.
Below is an example of the admin clusterrole command:
$oc create clusterrolebinding registry-controller \ --clusterrole=cluster-admin --user=admin 

What did you achieve?

If you followed all the steps within this manual you now should have a functioning Mediawiki Application running on your own CodeReady Containers. During the installation of this application on CodeReady Containers you have learned how to do the following things:
● Installing the CodeReady Containers
● Updating OpenShift
● Configuring a CodeReady Container
● Configuring the DNS
● Accessing the OpenShift cluster
● Deploying an application
● Creating new users
With these skills you’ll be able to set up your own Container Platform environment and host applications of your choosing.

Troubleshooting

Nameserver
There is the possibility that your CodeReady container can't connect to the internet due to a Nameserver error. When this is encountered a working fix for us was to stop the machine and then start the CRC machine with the following command:
C:\Users\[username]\$PATH>crc start -n 1.1.1.1 
Hyper-V admin
Should you run into a problem with Hyper-V it might be because your user is not an admin and therefore can’t access the Hyper-V admin user group.
  1. Click Start > Control Panel > Administration Tools > Computer Management. The Computer Management window opens.
  2. Click System Tools > Local Users and Groups > Groups. The list of groups opens.
  3. Double-click the Hyper-V Administrators group. The Hyper-V Administrators Properties window opens.
  4. Click Add. The Select Users or Groups window opens.
  5. In the Enter the object names to select field, enter the user account name to whom you want to assign permissions, and then click OK.
  6. Click Apply, and then click OK.

Terms and definitions

These terms and definitions will be expanded upon, below you can see an example of how this is going to look like together with a few terms that will require definitions.
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. Openshift is based on Kubernetes.
Clusters are a collection of multiple nodes which communicate with each other to perform a set of operations.
Containers are the basic units of OpenShift applications. These container technologies are lightweight mechanisms for isolating running processes so that they are limited to interacting with only their designated resources.
CodeReady Container is a minimal, preconfigured cluster that is used for development and testing purposes.
CodeReady Workspaces uses Kubernetes and containers to provide any member of the development or IT team with a consistent, secure, and zero-configuration development environment.

Sources

  1. https://www.ibm.com/support/knowledgecenteen/SSMKFH/com.ibm.apmaas.doc/install/hyperv_config_add_nonadmin_user_hyperv_usergroup.html
  2. https://access.redhat.com/documentation/en-us/openshift_container_platform/4.5/
  3. https://docs.openshift.com/container-platform/3.11/admin_guide/manage_users.html
submitted by Groep6HHS to openshift [link] [comments]

Ethereum on ARM. New Eth2.0 Raspberry Pi 4 image for joining the Medalla multi-client testnet. Step-by-step guide for installing and activating a validator (Prysm, Teku, Lighthouse and Nimbus clients included)

TL;DR: Flash your Raspberry Pi 4, plug in an ethernet cable, connect the SSD disk and power up the device to join the Eth2.0 medalla testnet.
The image takes care of all the necessary steps to join the Eth2.0 Medalla multi-client testnet [1], from setting up the environment and formatting the SSD disk to installing, managing and running the Eth1.0 and Eth2.0 clients.
You will only need to choose an Eth2.0 client, start the beacon chain service and activate / run the validator.
Note: this is an update for our previous Raspberry Pi 4 Eth2 image [2] so some of the instructions are directly taken from there.

MAIN FEATURES

SOFTWARE INCLUDED

INSTALLATION GUIDE AND USAGE

RECOMMENDED HARDWARE AND SETUP
STORAGE
You will need an SSD to run the Ethereum clients (without an SSD drive there’s absolutely no chance of syncing the Ethereum blockchain). There are 2 options:
Use an USB portable SSD disk such as the Samsung T5 Portable SSD.
Use an USB 3.0 External Hard Drive Case with a SSD Disk. In our case we used a Inateck 2.5 Hard Drive Enclosure FE2011. Make sure to buy a case with an UASP compliant chip, particularly, one of these: JMicron (JMS567 or JMS578) or ASMedia (ASM1153E).
In both cases, avoid getting low quality SSD disks as it is a key component of your node and it can drastically affect the performance (and sync times). Keep in mind that you need to plug the disk to an USB 3.0 port (in blue).
IMAGE DOWNLOAD AND INSTALLATION
1.- Download the image:
http://www.ethraspbian.com/downloads/ubuntu-20.04.1-preinstalled-server-arm64+raspi-eth2-medalla.img.zip
SHA256 149cb9b020d1c49fcf75c00449c74c6f38364df1700534b5e87f970080597d87
2.- Flash the image
Insert the microSD in your Desktop / Laptop and download the file.
Note: If you are not comfortable with command line or if you are running Windows, you can use Etcher [10]
Open a terminal and check your MicroSD device name running:
sudo fdisk -l
You should see a device named mmcblk0 or sdd. Unzip and flash the image:
unzip ubuntu-20.04.1-preinstalled-server-arm64+raspi-eth2-medalla.img.zip
sudo dd bs=1M if=ubuntu-20.04.1-preinstalled-server-arm64+raspi.img of=/dev/mmcblk0 conv=fdatasync status=progress
3.- Insert de MicroSD into the Raspberry Pi 4. Connect an Ethernet cable and attach the USB SSD disk (make sure you are using a blue port).
4.- Power on the device
The Ubuntu OS will boot up in less than one minute but you will need to wait approximately 7-8 minutes in order to allow the script to perform the necessary tasks to install the Medalla setup (it will reboot again)
5.- Log in
You can log in through SSH or using the console (if you have a monitor and keyboard attached)
User: ethereum Password: ethereum 
You will be prompted to change the password on first login, so you will need to log in twice.
6.- Forward 30303 port in your router (both UDP and TCP). If you don’t know how to do this, google “port forwarding” followed by your router model. You will need to open additional ports as well depending on the Eth2.0 client you’ve chosen.
7.- Getting console output
You can see what’s happening in the background by typing:
sudo tail -f /valog/syslog
8.- Grafana Dashboards
There are 5 Grafana dashboards available to monitor the Medalla node (see section “Grafana Dashboards” below).

The Medalla Eth2.0 multi-client testnet

Medalla is the official Eth2.0 multi-client testnet according to the latest official specification for Eth2.0, the v0.12.2 [11] release (which is aimed to be the final) [12].
In order to run a Medalla Eth 2.0 node you will need 3 components:
The image takes care of the Eth1.0 setup. So, once flashed (and after a first reboot), Geth (Eth1.0 client) starts to sync the Goerli testnet.
Follow these steps to enable your Eth2.0 Ethereum node:
CREATE THE VALIDATOR KEYS AND MAKE THE DEPOSIT
We need to get 32 Goerli ETH (fake ETH) ir order to make the deposit in the Eth2.0 contract and run the validator. The easiest way of getting ETH is by joining Prysm Discord's channel.
Open Metamask [14], select the Goerli Network (top of the window) and copy your ETH Address. Go to:
https://discord.com/invite/YMVYzv6
And open the “request-goerli-eth” channel (on the left)
Type:
!send $YOUR_ETH_ADDRESS (replace it with the one copied on Metamask)
You will receive enough ETH to run 1 validator.
Now it is time to create your validator keys and the deposit information. For your convenience we’ve packaged the official Eth2 launchpad tool [4]. Go to the EF Eth2.0 launchpad site:
https://medalla.launchpad.ethereum.org/
And click “Get started”
Read and accept all warnings. In the next screen, select 1 validator and go to your Raspberry Pi console. Under the ethereum account run:
cd && deposit --num_validators 1 --chain medalla
Choose your mnemonic language and type a password for keeping your keys safe. Write down your mnemonic password, press any key and type it again as requested.
Now you have 2 Json files under the validator_keys directory. A deposit data file for sending the 32 ETH along with your validator public key to the Eth1 chain (goerli testnet) and a keystore file with your validator keys.
Back to the Launchpad website, check "I am keeping my keys safe and have written down my mnemonic phrase" and click "Continue".
It is time to send the 32 ETH deposit to the Eth1 chain. You need the deposit file (located in your Raspberry Pi). You can, either copy and paste the file content and save it as a new file in your desktop or copy the file from the Raspberry to your desktop through SSH.
1.- Copy and paste: Connected through SSH to your Raspberry Pi, type:
cat validator_keys/deposit_data-$FILE-ID.json (replace $FILE-ID with yours)
Copy the content (the text in square brackets), go back to your desktop, paste it into your favourite editor and save it as a json file.
Or
2.- Ssh: From your desktop, copy the file:
scp [email protected]$YOUR_RASPBERRYPI_IP:/home/ethereum/validator_keys/deposit_data-$FILE_ID.json /tmp
Replace the variables with your data. This will copy the file to your desktop /tmp directory.
Upload the deposit file
Now, back to the Launchpad website, upload the deposit_data file and select Metamask, click continue and check all warnings. Continue and click “Initiate the Transaction”. Confirm the transaction in Metamask and wait for the confirmation (a notification will pop up shortly).
The Beacon Chain (which is connected to the Eth1 chain) will detect this deposit (that includes the validator public key) and the Validator will be enabled.
Congrats!, you just started your validator activation process.
CHOOSE AN ETH2.0 CLIENT
Time to choose your Eth2.0 client. We encourage you to run Lighthouse, Teku or Nimbus as Prysm is the most used client by far and diversity is key to achieve a resilient and healthy Eth2.0 network.
Once you have decided which client to run (as said, try to run one with low network usage), you need to set up the clients and start both, the beacon chain and the validator.
These are the instructions for enabling each client (Remember, choose just one Eth2.0 client out of 4):
LIGHTHOUSE ETH2.0 CLIENT
1.- Port forwarding
You need to open the 9000 port in your router (both UDP and TCP)
2.- Start the beacon chain
Under the ethereum account, run:
sudo systemctl enable lighthouse-beacon
sudo systemctl start lighthouse-beacon
3.- Start de validator
We need to import the validator keys. Run under the ethereum account:
lighthouse account validator import --directory=/home/ethereum/validator_keys
Then, type your previously defined password and run:
sudo systemctl enable lighthouse-validator
sudo systemctl start lighthouse-validator
The Lighthouse beacon chain and validator are now enabled

PRYSM ETH2.0 CLIENT
1.- Port forwarding
You need to open the 13000 and 12000 ports in your router (both UDP and TCP)
2.- Start the beacon chain
Under the ethereum account, run:
sudo systemctl enable prysm-beacon
sudo systemctl start prysm-beacon
3.- Start de validator
We need to import the validator keys. Run under the ethereum account:
validator accounts-v2 import --keys-dir=/home/ethereum/validator_keys
Accept the default wallet path and enter a password for your wallet. Now enter the password previously defined.
Lastly, set up your password and start the client:
echo "$YOUR_PASSWORD" > /home/ethereum/validator_keys/prysm-password.txt
sudo systemctl enable prysm-validator
sudo systemctl start prysm-validator
The Prysm beacon chain and the validator are now enabled.

TEKU ETH2.0 CLIENT
1.- Port forwarding
You need to open the 9151 port (both UDP and TCP)
2.- Start the Beacon Chain and the Validator
Under the Ethereum account, check the name of your keystore file:
ls /home/ethereum/validator_keys/keystore*
Set the keystore file name in the teku config file (replace the $KEYSTORE_FILE variable with the file listed above)
sudo sed -i 's/changeme/$KEYSTORE_FILE/' /etc/ethereum/teku.conf
Set the password previously entered:
echo "yourpassword" > validator_keys/teku-password.txt
Start the beacon chain and the validator:
sudo systemctl enable teku
sudo systemctl start teku
The Teku beacon chain and validator are now enabled.

NIMBUS ETH2.0 CLIENT
1.- Port forwarding
You need to open the 19000 port (both UDP and TCP)
2.- Start the Beacon Chain and the Validator
We need to import the validator keys. Run under the ethereum account:
beacon_node deposits import /home/ethereum/validator_keys --data-dir=/home/ethereum/.nimbus --log-file=/home/ethereum/.nimbus/nimbus.log
Enter the password previously defined and run:
sudo systemctl enable nimbus
sudo systemctl start nimbus
The Nimbus beacon chain and validator are now enabled.

WHAT's NEXT
Now you need to wait for the Eth1 blockchain and the beacon chain to get synced. In a few hours the validator will get enabled and put into a queue. These are the validator status that you will see until its final activation:
Finally, it will get activated and the staking process will start.
Congratulations!, you join the Medalla Eth2.0 multiclient testnet!

Grafana Dashboards

We configured 5 Grafana Dashboards to let users monitor both Eth1.0 and Eth2.0 clients. To access the dashboards just open your browser and type your Raspberry IP followed by the 3000 port:
http://replace_with_your_IP:3000 user: admin passwd: ethereum 
There are 5 dashboards available:
Lots of info here. You can see for example if Geth is in sync by checking (in the Blockchain section) if Headers, Receipts and Blocks fields are aligned or find Eth2.0 chain info.

Updating the software

We will be keeping the Eth2.0 clients updated through Debian packages in order to keep up with the testnet progress. Basically, you need to update the repo and install the packages through the apt command. For instance, in order to update all packages you would run:
sudo apt-get update && sudo apt-get install geth teku nimbus prysm-beacon prysm-validator lighthouse-beacon lighthouse-validator
Please follow us on Twitter in order to get regular updates and install instructions.
https://twitter.com/EthereumOnARM

References

  1. https://github.com/goerli/medalla/tree/mastemedalla
  2. https://www.reddit.com/ethereum/comments/hhvi2ethereum_on_arm_new_eth20_raspberry_pi_4_image/
  3. https://github.com/ethereum/go-ethereum/releases/tag/v1.9.20
  4. https://github.com/ethereum/eth2.0-deposit-cli/releases
  5. https://github.com/prysmaticlabs/prysm/releases/tag/v1.0.0-alpha.23
  6. https://github.com/PegaSysEng/teku
  7. https://github.com/sigp/lighthouse/releases/tag/v0.2.8
  8. https://github.com/status-im/nim-beacon-chain
  9. https://grafana.com
  10. https://www.balena.io/etcher
  11. https://github.com/ethereum/eth2.0-specs/releases/tag/v0.12.2
  12. https://blog.ethereum.org/2020/08/03/eth2-quick-update-no-14
  13. https://goerli.net
  14. https://metamask.io
submitted by diglos76 to ethereum [link] [comments]

C++ Lesson 0 - Development Environment

Ok, so for my first "tutorial", I’m going to teach you how to set up your development environment. I’ll run through the installations of compilers and editors for Linux, macOS and Windows platforms, but first I want to start with my setup as that is what I recommend. I use a Raspberry Pi 4 that I can remote into to compile and develop code on. It is a very capable machine if you ditch Raspberry OS and instead use Ubuntu. If you guys want, I can make another post telling you how to set one up and configure it for remote access.
Windows:
As sad as it is, windows dominate 80% of the market share when it comes to computer operating systems. It’s actually kind of stupid how such buggy software can be so popular but that’s just my opinion. Setting up your environment on Windows is actually remarkably easy. There is this IDE called Code::Blocks. Simply go to this link:
http://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/codeblocks-20.03mingw-setup.exe
download the installer and run it. Then you’re done. You can start writing code straight away. For these series I will be working with the Unix command line. So when I compile the code using the command line, you can simply click the “build and run” option from the IDE and it will automatically compile and run your code.
Linux:
If you’re a Linux user, you probably already know how to set up your environment, but just in case you don’t know I will run through it now. The first thing you want to do is update you repos and upgrade them. So, enter the following two commands:
sudo apt-get update
sudo apt-get upgrade
Please note that the sudo commands is essentially asking the terminal for root privileges. You need to enter your password in order to execute the commands. Now we need to install g++. This is done with:
sudo apt-get install g++
when prompted to, press ‘y’ and hit enter.
Let the command execute and GCC will be installed. Now, as I mentioned, I will be using the command line. If you want to just copy and past the commands I use to compile and run the code, you will need to be in the same working directory as me. To create this directory, enter the following command:
sudo mkdir ~/cpp_code
This will create a folder called ‘cpp_code’ is the home directory. This is base folder for out tutorial series and each lesson will have their own folder.
Your editor. Simple. Use whatever text editor you want. I know some purists out there will demand that using a command line text editor is the only way to code. Poppycock. Why over complicate matters unnecessarily. Every operating system has a text editor installed and that will suffice when writing C++ code. You just have to make sure that all the files are saved with the extension ‘.cpp’.
macOS:
Finally, all you Mac users out there. Thankfully, macOS is built upon unix, which means quite a few of the commands are the same as the Linux system. The first thing we have to do, however, is install a package manager. Homebrew is by far the best and is the one I use. To install it, execute the following command:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/masteinstall.sh)"
You will be asked to enter your password and then the installation will start. Once this has been completed, you can use the command ‘brew’ to install applications through the command line. So now you can install ‘gcc’ using the following command:
sudo brew install gcc
And then you’re done. Now use the same commands as the Linux users to set up the development folders. Now, your editor. You can simply use the text editor built into the macOS system to write your code. Just make sure you save all the files with the ‘.cpp’ extension.
And we’re done. Your systems should now be able to write, compile and run C++ code. This was my first ever tutorial so I would greatly appreciate any feedback on what I did right and wrong and how I could improve. Also, please ask as many questions as possible. Thank you.
submitted by Armature89 to ProgrammingBuddies [link] [comments]

Node.js Application Monitoring with Prometheus and Grafana

Hi guys, we published this article on our blog (here) some time ago and I thought it could be interesting for node to read is as well, since we got some good feedback on it!

What is application monitoring and why is it necessary?

Application monitoring is a method that uses software tools to gain insights into your software deployments. This can be achieved by simple health checks to see if the server is available to more advanced setups where a monitoring library is integrated into your server that sends data to a dedicated monitoring service. It can even involve the client side of your application, offering more detailed insights into the user experience.
For every developer, monitoring should be a crucial part of the daily work, because you need to know how the software behaves in production. You can let your testers work with your system and try to mock interactions or high loads, but these techniques will never be the same as the real production workload.

What is Prometheus and how does it work?

Prometheus is an open-source monitoring system that was created in 2012 by Soundcloud. In 2016, Prometheus became the second project (following Kubernetes) to be hosted by the Cloud Native Computing Foundation.
https://preview.redd.it/8kshgh0qpor51.png?width=1460&format=png&auto=webp&s=455c37b1b1b168d732e391a882598e165c42501a
The Prometheus server collects metrics from your servers and other monitoring targets by pulling their metric endpoints over HTTP at a predefined time interval. For ephemeral and batch jobs, for which metrics can't be scraped periodically due to their short-lived nature, Prometheus offers a Pushgateway. This is an intermediate server that monitoring targets can push their metrics before exiting. The data is retained there until the Prometheus server pulls it later.
The core data structure of Prometheus is the time series, which is essentially a list of timestamped values that are grouped by metric.
With PromQL (Prometheus Query Language), Prometheus provides a functional query language allowing for selection and aggregation of time series data in real-time. The result of a query can be viewed directly in the Prometheus web UI, or consumed by external systems such as Grafana via the HTTP API.

How to use prom-client to export metrics in Node.js for Prometheus?

prom-client is the most popular Prometheus client library for Node.js. It provides the building blocks to export metrics to Prometheus via the pull and push methods and supports all Prometheus metric types such as histogram, summaries, gauges and counters.

Setup sample Node.js project

Create a new directory and set up the Node.js project:
$ mkdir example-nodejs-app $ cd example-nodejs-app $ npm init -y 

Install prom-client

The prom-client npm module can be installed via:
$ npm install prom-client 

Exposing default metrics

Every Prometheus client library comes with predefined default metrics that are assumed to be good for all applications on the specific runtime. The prom-client library also follows this convention. The default metrics are useful for monitoring the usage of resources such as memory and CPU.
You can capture and expose the default metrics with following code snippet:
const http = require('http') const url = require('url') const client = require('prom-client') // Create a Registry which registers the metrics const register = new client.Registry() // Add a default label which is added to all metrics register.setDefaultLabels({ app: 'example-nodejs-app' }) // Enable the collection of default metrics client.collectDefaultMetrics({ register }) // Define the HTTP server const server = http.createServer(async (req, res) => { // Retrieve route from request object const route = url.parse(req.url).pathname if (route === '/metrics') { // Return all metrics the Prometheus exposition format res.setHeader('Content-Type', register.contentType) res.end(register.metrics()) } }) // Start the HTTP server which exposes the metrics on http://localhost:8080/metrics server.listen(8080) 

Exposing custom metrics

While default metrics are a good starting point, at some point, you’ll need to define custom metrics in order to stay on top of things.
Capturing and exposing a custom metric for HTTP request durations might look like this:
const http = require('http') const url = require('url') const client = require('prom-client') // Create a Registry which registers the metrics const register = new client.Registry() // Add a default label which is added to all metrics register.setDefaultLabels({ app: 'example-nodejs-app' }) // Enable the collection of default metrics client.collectDefaultMetrics({ register }) // Create a histogram metric const httpRequestDurationMicroseconds = new client.Histogram({ name: 'http_request_duration_seconds', help: 'Duration of HTTP requests in microseconds', labelNames: ['method', 'route', 'code'], buckets: [0.1, 0.3, 0.5, 0.7, 1, 3, 5, 7, 10] }) // Register the histogram register.registerMetric(httpRequestDurationMicroseconds) // Define the HTTP server const server = http.createServer(async (req, res) => { // Start the timer const end = httpRequestDurationMicroseconds.startTimer() // Retrieve route from request object const route = url.parse(req.url).pathname if (route === '/metrics') { // Return all metrics the Prometheus exposition format res.setHeader('Content-Type', register.contentType) res.end(register.metrics()) } // End timer and add labels end({ route, code: res.statusCode, method: req.method }) }) // Start the HTTP server which exposes the metrics on http://localhost:8080/metrics server.listen(8080) 
Copy the above code into a file called server.jsand start the Node.js HTTP server with following command:
$ node server.js 
You should now be able to access the metrics via http://localhost:8080/metrics.

How to scrape metrics from Prometheus

Prometheus is available as Docker image and can be configured via a YAML file.
Create a configuration file called prometheus.ymlwith following content:
global: scrape_interval: 5s scrape_configs: - job_name: "example-nodejs-app" static_configs: - targets: ["docker.for.mac.host.internal:8080"] 
The config file tells Prometheus to scrape all targets every 5 seconds. The targets are defined under scrape_configs. On Mac, you need to use docker.for.mac.host.internal as host, so that the Prometheus Docker container can scrape the metrics of the local Node.js HTTP server. On Windows, use docker.for.win.localhost and for Linux use localhost.
Use the docker run command to start the Prometheus Docker container and mount the configuration file (prometheus.yml):
$ docker run --rm -p 9090:9090 \ -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus:v2.20.1 
Windows users need to replace pwd with the path to their current working directory.
You should now be able to access the Prometheus Web UI on http://localhost:9090

What is Grafana and how does it work?

Grafana is a web application that allows you to visualize data sources via graphs or charts. It comes with a variety of chart types, allowing you to choose whatever fits your monitoring data needs. Multiple charts are grouped into dashboards in Grafana, so that multiple metrics can be viewed at once.
https://preview.redd.it/vt8jwu8vpor51.png?width=3584&format=png&auto=webp&s=4101843c84cfc6293debcdfc3bdbe70811dab2e9
The metrics displayed in the Grafana charts come from data sources. Prometheus is one of the supported data sources for Grafana, but it can also use other systems, like AWS CloudWatch, or Azure Monitor.
Grafana also allows you to define alerts that will be triggered if certain issues arise, meaning you’ll receive an email notification if something goes wrong. For a more advanced alerting setup checkout the Grafana integration for Opsgenie.

Starting Grafana

Grafana is also available as Docker container. Grafana datasources can be configured via a configuration file.
Create a configuration file called datasources.ymlwith the following content:
apiVersion: 1 datasources: - name: Prometheus type: prometheus access: proxy orgId: 1 url: http://docker.for.mac.host.internal:9090 basicAuth: false isDefault: true editable: true 
The configuration file specifies Prometheus as a datasource for Grafana. Please note that on Mac, we need to use docker.for.mac.host.internal as host, so that Grafana can access Prometheus. On Windows, use docker.for.win.localhost and for Linux use localhost.
Use the following command to start a Grafana Docker container and to mount the configuration file of the datasources (datasources.yml). We also pass some environment variables to disable the login form and to allow anonymous access to Grafana:
$ docker run --rm -p 3000:3000 \ -e GF_AUTH_DISABLE_LOGIN_FORM=true \ -e GF_AUTH_ANONYMOUS_ENABLED=true \ -e GF_AUTH_ANONYMOUS_ORG_ROLE=Admin \ -v `pwd`/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml \ grafana/grafana:7.1.5 
Windows users need to replace pwd with the path to their current working directory.
You should now be able to access the Grafana Web UI on http://localhost:3000

Configuring a Grafana Dashboard

Once the metrics are available in Prometheus, we want to view them in Grafana. This requires creating a dashboard and adding panels to that dashboard:
  1. Go to the Grafana UI at http://localhost:3000, click the + button on the left, and select Dashboard.
  2. In the new dashboard, click on the Add new panel button.
  3. In the Edit panel view, you can select a metric and configure a chart for it.
  4. The Metrics drop-down on the bottom left allows you to choose from the available metrics. Let’s use one of the default metrics for this example.
  5. Type process_resident_memory_bytesinto the Metricsinput and {{app}}into the Legendinput.
  6. On the right panel, enter Memory Usage for the Panel title.
  7. As the unit of the metric is in bytes we need to select bytes(Metric)for the left y-axis in the Axes section, so that the chart is easy to read for humans.
You should now see a chart showing the memory usage of the Node.js HTTP server.
Press Apply to save the panel. Back on the dashboard, click the small "save" symbol at the top right, a pop-up will appear allowing you to save your newly created dashboard for later use.

Setting up alerts in Grafana

Since nobody wants to sit in front of Grafana all day watching and waiting to see if things go wrong, Grafana allows you to define alerts. These alerts regularly check whether a metric adheres to a specific rule, for example, whether the errors per second have exceeded a specific value.
Alerts can be set up for every panel in your dashboards.
  1. Go into the Grafana dashboard we just created.
  2. Click on a panel title and select edit.
  3. Once in the edit view, select "Alerts" from the middle tabs, and press the Create Alertbutton.
  4. In the Conditions section specify 42000000 after IS ABOVE. This tells Grafana to trigger an alert when the Node.js HTTP server consumes more than 42 MB Memory.
  5. Save the alert by pressing the Apply button in the top right.

Sample code repository

We created a code repository that contains a collection of Docker containers with Prometheus, Grafana, and a Node.js sample application. It also contains a Grafana dashboard, which follows the RED monitoring methodology.
Clone the repository:
$ git clone https://github.com/coder-society/nodejs-application-monitoring-with-prometheus-and-grafana.git 
The JavaScript code of the Node.js app is located in the /example-nodejs-app directory. All containers can be started conveniently with docker-compose. Run the following command in the project root directory:
$ docker-compose up -d 
After executing the command, a Node.js app, Grafana, and Prometheus will be running in the background. The charts of the gathered metrics can be accessed and viewed via the Grafana UI at http://localhost:3000/d/1DYaynomMk/example-service-dashboard.
To generate traffic for the Node.js app, we will use the ApacheBench command line tool, which allows sending requests from the command line.
On MacOS, it comes pre-installed by default. On Debian-based Linux distributions, ApacheBench can be installed with the following command:
$ apt-get install apache2-utils 
For Windows, you can download the binaries from Apache Lounge as a ZIP archive. ApacheBench will be named ab.exe in that archive.
This CLI command will run ApacheBench so that it sends 10,000 requests to the /order endpoint of the Node.js app:
$ ab -m POST -n 10000 -c 100 http://localhost:8080/order 
Depending on your hardware, running this command may take some time.
After running the ab command, you can access the Grafana dashboard via http://localhost:3000/d/1DYaynomMk/example-service-dashboard.

Summary

Prometheus is a powerful open-source tool for self-hosted monitoring. It’s a good option for cases in which you don’t want to build from scratch but also don’t want to invest in a SaaS solution.
With a community-supported client library for Node.js and numerous client libraries for other languages, the monitoring of all your systems can be bundled into one place.
Its integration is straightforward, involving just a few lines of code. It can be done directly for long-running services or with help of a push server for short-lived jobs and FaaS-based implementations.
Grafana is also an open-source tool that integrates well with Prometheus. Among the many benefits it offers are flexible configuration, dashboards that allow you to visualize any relevant metric, and alerts to notify of any anomalous behavior.
These two tools combined offer a straightforward way to get insights into your systems. Prometheus offers huge flexibility in terms of metrics gathered and Grafana offers many different graphs to display these metrics. Prometheus and Grafana also integrate so well with each other that it’s surprising they’re not part of one product.
You should now have a good understanding of Prometheus and Grafana and how to make use of them to monitor your Node.js projects in order to gain more insights and confidence in your software deployments.
submitted by matthevva to node [link] [comments]

Unbrick a switch

Unbrick a switch
So recently I acquired some gear from ebay, it turns out one of the items was a Netgear FS728TP that was bricked. I needed some time alone to decompress, so I decided to see if I could fix it. I do not take credit for the original work of discovering the datasheet or UART pins, this was found in a google cache of an old Netgear forum. The images and guide are all original content from myself. Anyway, here goes the guide.

https://preview.redd.it/idjfna12l8o51.jpg?width=1256&format=pjpg&auto=webp&s=52afda1fe60d6eb4dea98f6b2cb6b555584e4605

FS728TP UART Recovery Unbricking

If you managed to brick your FS728TP with a bad firmware update, rollback, etc. this guide aggregates data found around the net. This process involves soldering, serial communications and some basic hardware knowledge. This device uses a Marvel 88E6218-LG01 with UART p52 = Rx, p53 = Tx. U27 is similar to max232 chip, where p11 and p12 connect to the UART on the Marvel controller.

Requirements

  • Netgear FS728TPv1 Firmware
  • You will need the 5.0.0.7 Package for the boot rom and the 5.0.0.8 for the latest firmware
  • Hyperterminal, puttyplus or something that can send files via XMODEM
  • Soldering Iron
  • FTDI breakout board or cable

Soldering UART

Being by unplugging everything and opening the case of the FS728TPv1. Once open, find U27. It will be near the back of the board, J8, the MARVELL controller, and may be under the MAC sticker. Find the pins 11 and 12 as shown in the photo. Solder a wire to each of these pins and connect them to the RX and TX pins of your FTDI cable or board. Be sure to also connect GND to a suitable location, such as a screw on the board.

https://preview.redd.it/n2uddgcqj8o51.jpg?width=800&format=pjpg&auto=webp&s=c196c8bae1795dfd4fab8ab3b8a08294e30dfd8a

Booting

WARNING: LETHAL VOLTAGE Cover the power supply with a piece of plexiglass, FR4 or other non-conductive material to protect yourself from the mains power. Use electrical tape to hold it in place. This will also act as an air duct to keep the PSU cool while the case is off.
With the FTDI chip connected to your PC, open a serial session using:
  • baudrate = 38400, data bits = 8, parity = none, stop bits = 1, flow control = none
Now, boot the switch. If nothing happens, try switching your RX/TX wires. If successful, you will be presented with a screen that says Autoboot in 2 seconds - press RETURN or Esc. to abort and enter prom
Press RETURN or Esc
The following menu will show in the terminal:
  • 1 = software download
  • 2 = flash file Erase
  • 3 = diagnostic mode
  • 4 = password recovery procedure entry
  • 5 = Set baudrate terminal
  • 6 = back
Select option 1 to flash the firmware files.

https://preview.redd.it/a00vo1yuj8o51.png?width=849&format=png&auto=webp&s=2869a44333597618478fbcfdfbee5121c521707d

Flashing

For this step, I used hyperterminal. Any other terminal with XMODEM file capabilities should work.
If you need to flash the BOOT CODE flash firmware 3.0.0.22 first. This will take about 25-30 minutes. This will reenable the web interface and allow you to flash the BOOT CODE 1.0.0.5 and FIRMWARE 5.0.0.8 from the web interface or Smartwizard Discovery
If you already have the 1.0.0.5 BOOT CODE, instead flash 5.0.0.8 FIRMWARE. This will take about 25-30 minutes.
https://preview.redd.it/2q7on2ezj8o51.png?width=855&format=png&auto=webp&s=3461deafa0afb0e50844b3cfa66ab6d421984546

Final Steps

When the firmware has been flashed successfully, reboot the device. You should see system tests PASS and Decompressing SW from image-1.
Congratulations, you have unbricked your switch. Now sell it and get something better than a 10 year old Netgear switch.

FYI, this is cross posted to my Gist here: https://gist.github.com/BinaryConstruct/a6e823ba810c77f0ce7b262176b0bc03

edit: added photo of setup
submitted by BinaryConstruct to homelab [link] [comments]

CLI & GUI v0.16.0.3 'Nitrogen Nebula' released!

This is the CLI & GUI v0.16.0.3 'Nitrogen Nebula' point release. This release predominantly features bug fixes and performance improvements.

(Direct) download links (GUI)

(Direct) download links (CLI)

GPG signed hashes

We encourage users to check the integrity of the binaries and verify that they were signed by binaryFate's GPG key. A guide that walks you through this process can be found here for Windows and here for Linux and Mac OS X.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 # This GPG-signed message exists to confirm the SHA256 sums of Monero binaries. # # Please verify the signature against the key for binaryFate in the # source code repository (/utils/gpg_keys). # # ## CLI 75b198869a3a117b13b9a77b700afe5cee54fd86244e56cb59151d545adbbdfd monero-android-armv7-v0.16.0.3.tar.bz2 b48918a167b0961cdca524fad5117247239d7e21a047dac4fc863253510ccea1 monero-android-armv8-v0.16.0.3.tar.bz2 727a1b23fbf517bf2f1878f582b3f5ae5c35681fcd37bb2560f2e8ea204196f3 monero-freebsd-x64-v0.16.0.3.tar.bz2 6df98716bb251257c3aab3cf1ab2a0e5b958ecf25dcf2e058498783a20a84988 monero-linux-armv7-v0.16.0.3.tar.bz2 6849446764e2a8528d172246c6b385495ac60fffc8d73b44b05b796d5724a926 monero-linux-armv8-v0.16.0.3.tar.bz2 cb67ad0bec9a342b0f0be3f1fdb4a2c8d57a914be25fc62ad432494779448cc3 monero-linux-x64-v0.16.0.3.tar.bz2 49aa85bb59336db2de357800bc796e9b7d94224d9c3ebbcd205a8eb2f49c3f79 monero-linux-x86-v0.16.0.3.tar.bz2 16a5b7d8dcdaff7d760c14e8563dd9220b2e0499c6d0d88b3e6493601f24660d monero-mac-x64-v0.16.0.3.tar.bz2 5d52712827d29440d53d521852c6af179872c5719d05fa8551503d124dec1f48 monero-win-x64-v0.16.0.3.zip ff094c5191b0253a557be5d6683fd99e1146bf4bcb99dc8824bd9a64f9293104 monero-win-x86-v0.16.0.3.zip # ## GUI 50fe1d2dae31deb1ee542a5c2165fc6d6c04b9a13bcafde8a75f23f23671d484 monero-gui-install-win-x64-v0.16.0.3.exe 20c03ddb1c82e1bcb73339ef22f409e5850a54042005c6e97e42400f56ab2505 monero-gui-linux-x64-v0.16.0.3.tar.bz2 574a84148ee6af7119fda6b9e2859e8e9028fe8a8eec4dfdd196aeade47e9c90 monero-gui-mac-x64-v0.16.0.3.dmg 371cb4de2c9ccb5ed99b2622068b6aeea5bdfc7b9805340ea7eb92e7c17f2478 monero-gui-win-x64-v0.16.0.3.zip # # # ~binaryFate -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEgaxZH+nEtlxYBq/D8K9NRioL35IFAl81bL8ACgkQ8K9NRioL 35J+UA//bgY6Mhikh8Cji8i2bmGXEmGvvWMAHJiAtAG2lgW3BT9BHAFMfEpUP5rk svFNsUY/Uurtzxwc/myTPWLzvXVMHzaWJ/EMKV9/C3xrDzQxRnl/+HRS38aT/D+N gaDjchCfk05NHRIOWkO3+2Erpn3gYZ/VVacMo3KnXnQuMXvAkmT5vB7/3BoosOU+ B1Jg5vPZFCXyZmPiMQ/852Gxl5FWi0+zDptW0jrywaS471L8/ZnIzwfdLKgMO49p Fek1WUUy9emnnv66oITYOclOKoC8IjeL4E1UHSdTnmysYK0If0thq5w7wIkElDaV avtDlwqp+vtiwm2svXZ08rqakmvPw+uqlYKDSlH5lY9g0STl8v4F3/aIvvKs0bLr My2F6q9QeUnCZWgtkUKsBy3WhqJsJ7hhyYd+y+sBFIQH3UVNv5k8XqMIXKsrVgmn lRSolLmb1pivCEohIRXl4SgY9yzRnJT1OYHwgsNmEC5T9f019QjVPsDlGNwjqgqB S+Theb+pQzjOhqBziBkRUJqJbQTezHoMIq0xTn9j4VsvRObYNtkuuBQJv1wPRW72 SPJ53BLS3WkeKycbJw3TO9r4BQDPoKetYTE6JctRaG3pSG9VC4pcs2vrXRWmLhVX QUb0V9Kwl9unD5lnN17dXbaU3x9Dc2pF62ZAExgNYfuCV/pTJmc= =bbBm -----END PGP SIGNATURE----- 

Upgrading (GUI)

Note that you should be able to utilize the automatic updater in the GUI that was recently added. A pop-up will appear with the new binary.
In case you want to update manually, you ought to perform the following steps:
  1. Download the new binaries (the .zip file (Windows) or the tar.bz2 file (Mac OS X and Linux)) from the direct download links in this thread or from the official website. If you run active AV (AntiVirus) software, I'd recommend to apply this guide -> https://monero.stackexchange.com/questions/10798/my-antivirus-av-software-blocks-quarantines-the-monero-gui-wallet-is-there
  2. Extract the new binaries (the .zip file (Windows) or the tar.bz2 file (Mac OS X and Linux) you just downloaded) to a new directory / folder of your liking.
  3. Open monero-wallet-gui. It should automatically load your "old" wallet.
If, for some reason, the GUI doesn't automatically load your old wallet, you can open it as follows:
[1] On the second page of the wizard (first page is language selection) choose Open a wallet from file
[2] Now select your initial / original wallet. Note that, by default, the wallet files are located in Documents\Monero\ (Windows), Users//Monero/ (Mac OS X), or home//Monero/ (Linux).
Lastly, note that a blockchain resync is not needed, i.e., it will simply pick up where it left off.

Upgrading (CLI)

You ought to perform the following steps:
  1. Download the new binaries (the .zip file (Windows) or the tar.bz2 file (Mac OS X and Linux)) from the official website, the direct download links in this thread, or Github.
  2. Extract the new binaries to a new directory of your liking.
  3. Copy over the wallet files from the old directory (i.e. the v0.15.x.x or v0.16.0.x directory).
  4. Start monerod and monero-wallet-cli (in case you have to use your wallet).
Note that a blockchain resync is not needed. Thus, if you open monerod-v0.16.0.3, it will simply pick up where it left off.

Release notes (GUI)

  • macOS app is now notarized by Apple
  • CMake improvments
  • Add support for IPv6 remote nodes
  • Add command history to Logs page
  • Add "Donate to Monero" button
  • Indicate probability of finding a block on Mining page
  • Minor bug fixes
Note that you can find a full change log here.

Release notes (CLI)

  • DoS fixes
  • Add option to print daily coin emission and fees in monero-blockchain-stats
  • Minor bug fixes
Note that you can find a full change log here.

Further remarks

  • A guide on pruning can be found here.
  • Ledger Monero users, please be aware that version 1.6.0 of the Ledger Monero App is required in order to properly use CLI or GUI v0.16.

Guides on how to get started (GUI)

https://github.com/monero-ecosystem/monero-GUI-guide/blob/mastemonero-GUI-guide.md
Older guides: (These were written for older versions, but are still somewhat applicable)
Sheep’s Noob guide to Monero GUI in Tails
https://medium.com/@Electricsheep56/the-monero-gui-wallet-broken-down-in-plain-english-bd2889b8c202

Ledger GUI guides:

How do I generate a Ledger Monero wallet with the GUI (monero-wallet-gui)?
How do I restore / recreate my Ledger Monero wallet?

Trezor GUI guides:

How do I generate a Trezor Monero wallet with the GUI (monero-wallet-gui)?
How to use Monero with Trezor - by Trezor
How do I restore / recreate my Trezor Monero wallet?

Ledger & Trezor CLI guides

Guides to resolve common issues (GUI)

My antivirus (AV) software blocks / quarantines the Monero GUI wallet, is there a work around I can utilize?
I am missing (not seeing) a transaction to (in) the GUI (zero balance)
Transaction stuck as “pending” in the GUI
How do I move the blockchain (data.mdb) to a different directory during (or after) the initial sync without losing the progress?
I am using the GUI and my daemon doesn't start anymore
My GUI feels buggy / freezes all the time
The GUI uses all my bandwidth and I can't browse anymore or use another application that requires internet connection
How do I change the language of the 25 word mnemonic seed in the GUI or CLI?
I am using remote node, but the GUI still syncs blockchain?

Using the GUI with a remote node

In the wizard, you can either select Simple mode or Simple mode (bootstrap) to utilize this functionality. Note that the GUI developers / contributors recommend to use Simple mode (bootstrap) as this mode will eventually use your own (local) node, thereby contributing to the strength and decentralization of the network. Lastly, if you manually want to set a remote node, you ought to use Advanced mode. A guide can be found here:
https://www.getmonero.org/resources/user-guides/remote_node_gui.html

Adding a new language to the GUI

https://github.com/monero-ecosystem/monero-translations/blob/masteweblate.md
If, after reading all these guides, you still require help, please post your issue in this thread and describe it in as much detail as possible. Also, feel free to post any other guides that could help people.
submitted by dEBRUYNE_1 to Monero [link] [comments]

GUI v0.16.0.2 'Nitrogen Nebula' released!

This is the GUI v0.16.0.2 'Nitrogen Nebula' point release. This release predominantly features bug fixes and performance improvements.

(Direct) download links

GPG signed hashes

We encourage users to check the integrity of the binaries and verify that they were signed by binaryFate's GPG key. A guide that walks you through this process can be found here for Windows and here for Linux and Mac OS X.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 # This GPG-signed message exists to confirm the SHA256 sums of Monero binaries. # # Please verify the signature against the key for binaryFate in the # source code repository (/utils/gpg_keys). # # ## CLI 8e3ce10997ab50eec2ec3959846d61b1eb3cb61b583c9f0f9f5cc06f63aaed14 monero-android-armv7-v0.16.0.1.tar.bz2 d9e885b3b896219580195fa4c9a462eeaf7e9f7a6c8fdfae209815682ab9ed8a monero-android-armv8-v0.16.0.1.tar.bz2 4f4a2c761b3255027697cd57455f5e8393d036f225f64f0e2eff73b82b393b50 monero-freebsd-x64-v0.16.0.1.tar.bz2 962f30701ef63a133a62ada24066a49a2211cd171111828e11f7028217a492ad monero-linux-armv7-v0.16.0.1.tar.bz2 83c21fe8bb5943c4a4c77af90980a9c3956eea96426b4dea89fe85792cc1f032 monero-linux-armv8-v0.16.0.1.tar.bz2 4615b9326b9f57565193f5bfe092c05f7609afdc37c76def81ee7d324cb07f35 monero-linux-x64-v0.16.0.1.tar.bz2 3e4524694a56404887f8d7fedc49d5e148cbf15498d3ee18e5df6338a86a4f68 monero-linux-x86-v0.16.0.1.tar.bz2 d226c704042ff4892a7a96bb508b80590a40173683101db6ad3a3a9e20604334 monero-mac-x64-v0.16.0.1.tar.bz2 851b57ec0783d191f0942232e431aedfbc2071125b1bd26af9356c7b357ab431 monero-win-x64-v0.16.0.1.zip e944d15b98fcf01e54badb9e2d22bae4cd8a28eda72c3504a8156ee30aac6b0f monero-win-x86-v0.16.0.1.zip # ## GUI d35c05856e669f1172207cbe742d90e6df56e477249b54b2691bfd5c5a1ca047 monero-gui-install-win-x64-v0.16.0.2.exe 9ff8c91268f8eb027bd26dcf53fda5e16cb482815a6d5b87921d96631a79f33f monero-gui-linux-x64-v0.16.0.2.tar.bz2 142a1e8e67d80ce2386057e69475aa97c58ced30f0ece3f4b9f5ea5b62e48419 monero-gui-mac-x64-v0.16.0.2.tar.bz2 6e0efb25d1f5c45a4527c66ad6f6c623c08590d7c21de5a611d8c2ff0e3fbb55 monero-gui-win-x64-v0.16.0.2.zip # # # ~binaryFate -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEgaxZH+nEtlxYBq/D8K9NRioL35IFAl8JaBMACgkQ8K9NRioL 35IKbhAAnmfm/daG2K+llRBYmNkQczmVbivbu9JLDNnbYvGuTVH94PSFC/6K7nnE 8EkiLeIVtBBlyr4rK288xSJQt+BMVM93LtzHfA9bZUbZkjj2le+KN8BHcmgEImA8 Qm2OPgr7yrxvb3aD5nQUDoaeQSmnkLCpN2PLbNGymOH0+IVl1ZYjY7pUSsJZQGvC ErLxZSN5TWvX42LcpyBD3V7//GBOQ/gGpfB9fB0Q5LgXOCLlN2OuQJcYY5KV3H+X BPp9IKKJ0OUGGm0j7mi8OvHxTO4cbHjU8NdbtXy8OnPkXh24MEwACaG1HhiNc2xl LhzMSoMOnVbRkLLtIyfDC3+PqO/wSxVamphKplEncBXN28AakyFFYOWPlTudacyi SvudHJkRKdF0LVIjXOzxBoRBGUoJyyMssr1Xh67JA+E0fzY3Xm9zPPp7+Hp0Pe4H ZwT7WJAKoA6GqNpw7P6qg8vAImQQqoyMg51P9Gd+OGEo4DiA+Sn5r2YQcKY5PWix NlBTKq5JlVfRjE1v/8lUzbe+Hq10mbuxIqZaJ4HnWecifYDd0zmfQP1jt7xsTCK3 nxHb9Tl1jVdIuu2eCqGTG+8O9ofjVDz3+diz6SnpaSUjuws218QCZGPyYxe91Tz8 dCrf41FMHYhO+Lh/KHFt4yf4LKc0c048BoVUg6O0OhNIDTsvd/k= =akVA -----END PGP SIGNATURE----- 

Upgrading

Note that, once the DNS records are upgraded, you should be able to utilize the automatic updater in the GUI that was recently added. A pop-up will appear with the new binary.
In case you want to update manually, you ought to perform the following steps:
  1. Download the new binaries (the .zip file (Windows) or the tar.bz2 file (Mac OS X and Linux)) from the direct download links in this thread or from the official website. If you run active AV (AntiVirus) software, I'd recommend to apply this guide -> https://monero.stackexchange.com/questions/10798/my-antivirus-av-software-blocks-quarantines-the-monero-gui-wallet-is-there
  2. Extract the new binaries (the .zip file (Windows) or the tar.bz2 file (Mac OS X and Linux) you just downloaded) to a new directory / folder of your liking.
  3. Open monero-wallet-gui. It should automatically load your "old" wallet.
If, for some reason, the GUI doesn't automatically load your old wallet, you can open it as follows:
[1] On the second page of the wizard (first page is language selection) choose Open a wallet from file
[2] Now select your initial / original wallet. Note that, by default, the wallet files are located in Documents\Monero\ (Windows), Users//Monero/ (Mac OS X), or home//Monero/ (Linux).
Lastly, note that a blockchain resync is not needed, i.e., it will simply pick up where it left off.

Release notes

Point release:
  • Fix bug that inhibited Ledger Monero users from properly sending transactions containing multiple inputs.
  • CMake improvements
  • Minor security relevant fixes
  • Various bug fixes
Major release:
  • Simple mode: node selction algorithm improved
  • UX: display estimated transaction fee
  • UX: add update dialog with download and verify functionality
  • UX: implement autosave feature
  • UI: redesign advanced options on transfer page
  • UI: improve daemon sync progress bar
  • UI: new language sidebar
  • UI: new processing splash design
  • UI: redesign settings page
  • Trezor: support new passphrase entry mechanism
  • Wizard: add support for seed offset
  • Dandelion++
  • Major Bulletproofs verification performance optimizations
  • Various bug fixes and performance improvements
Note that you can find a full change log here.

Further remarks

  • A guide on pruning can be found here.
  • Ledger Monero users, please be aware that version 1.6.0 of the Ledger Monero App is required in order to properly use GUI v0.16.

Guides on how to get started

https://github.com/monero-ecosystem/monero-GUI-guide/blob/mastemonero-GUI-guide.md
Older guides: (These were written for older versions, but are still somewhat applicable)
Sheep’s Noob guide to Monero GUI in Tails
https://medium.com/@Electricsheep56/the-monero-gui-wallet-broken-down-in-plain-english-bd2889b8c202

Ledger GUI guides:

How do I generate a Ledger Monero wallet with the GUI (monero-wallet-gui)?
How do I restore / recreate my Ledger Monero wallet?

Trezor GUI guides:

How do I generate a Trezor Monero wallet with the GUI (monero-wallet-gui)?
How to use Monero with Trezor - by Trezor
How do I restore / recreate my Trezor Monero wallet?

Guides to resolve common issues

My antivirus (AV) software blocks / quarantines the Monero GUI wallet, is there a work around I can utilize?
I am missing (not seeing) a transaction to (in) the GUI (zero balance)
I forgot to upgrade (from CLI or GUI v0.13 to CLI or GUI v0.14) and, as a result, accidentally synced to the wrong (alternative) chain
I forgot to upgrade (from CLI or GUI v0.13 to CLI or GUI v0.14) and created / performed a transaction on the wrong (alternative) chain
Transaction stuck as “pending” in the GUI
How do I move the blockchain (data.mdb) to a different directory during (or after) the initial sync without losing the progress?
I am using the GUI and my daemon doesn't start anymore
My GUI feels buggy / freezes all the time
The GUI uses all my bandwidth and I can't browse anymore or use another application that requires internet connection
How do I change the language of the 25 word mnemonic seed in the GUI or CLI?
I am using remote node, but the GUI still syncs blockchain?

Using the GUI with a remote node

In the wizard, you can either select Simple mode or Simple mode (bootstrap) to utilize this functionality. Note that the GUI developers / contributors recommend to use Simple mode (bootstrap) as this mode will eventually use your own (local) node, thereby contributing to the strength and decentralization of the network. Lastly, if you manually want to set a remote node, you ought to use Advanced mode. A guide can be found here:
https://www.getmonero.org/resources/user-guides/remote_node_gui.html

Adding a new language to the GUI

https://github.com/monero-ecosystem/monero-translations/blob/masteweblate.md
If, after reading all these guides, you still require help, please post your issue in this thread and describe it in as much detail as possible. Also, feel free to post any other guides that could help people.
submitted by dEBRUYNE_1 to Monero [link] [comments]

Ethereum on ARM. New Eth2.0 Raspberry pi 4 image for automatically joining Prylabs Onyx Eth2.0 testnet. Step-by-step guide for installing and activating a validator.

TL;DR: Flash your Raspberry Pi 4, plug in an ethernet cable, connect the SSD disk and power up the device to join the Eth2.0 Onyx testnet.
The image takes care of all the necessary steps to join the Eth2.0 Onyx testnet [1], from setting up the environment and formatting the SSD disk to installing and running the Ethereum Eth1.0 and Eth2.0 clients as well as starting the blockchains synchronization (for both Geth Eth1.0 Goerli [2] and Prysm [3] Eth2.0 Beacon Chain).
You will only need to create a validator account, send the deposit of 32 Goerli ETH to the Onyx contract and start the validator systemd service.
MAIN FEATURES
SOFTWARE INCLUDED

INSTALLATION GUIDE AND USAGE

RECOMMENDED HARDWARE AND SETUP
STORAGE
You will need and SSD to run the Ethereum clients (without an SSD drive there’s absolutely no chance of syncing the Ethereum blockchain). There are 2 options:
In both cases, avoid getting low quality SSD disks as it is a key component of you node and it can drastically affect the performance (and sync times). Keep in mind that you need to plug the disk to an USB 3.0 port (in blue).
IMAGE DOWNLOAD AND INSTALLATION
1.- Download the image:
http://www.ethraspbian.com/downloads/ubuntu-20.04-preinstalled-server-arm64+raspi-eth2-onyx.img.zip
SHA256 13bc7ac4de6e18093b99213511791b2a24b659727b22a8a8d44f583e73a507cc
2.- Flash the image
Insert the microSD in your Desktop / Laptop and download the file:
Note: If you are not comfortable with command line or if you are running Windows, you can use Etcher [8]
Open a terminal and check your MicroSD device name running:
sudo fdisk -l 
You should see a device named mmcblk0 or sdd. Unzip and flash the image:
unzip ubuntu-20.04-preinstalled-server-arm64+raspi-eth2-onyx.img.zip sudo dd bs=1M if=ubuntu-20.04-preinstalled-server-arm64+raspi.img of=/dev/mmcblk0 conv=fdatasync status=progress 
3.- Insert de MicroSD into the Raspberry Pi 4. Connect an Ethernet cable and attach the USB SSD disk (make sure you are using a blue port).
4.- Power on the device
The Ubuntu OS will boot up in less than one minute but you will need to wait approximately 7 minutes in order to allow the script to perform the necessary tasks to join the Onyx testnet (it will reboot again)
5.- Log in
You can log in through SSH or using the console (if you have a monitor and keyboard attached)
User: ethereum Password: ethereum 
You will be prompted to change the password on first login, so you will need to log in twice.
6.- Forward 30303 and 13000 ports in your router (both UDP and TCP). If you don’t know how to do this, google “port forwarding” followed by your router model.
7.- Getting console output
You can see what’s happening in the background by typing:
sudo tail -f /valog/syslog 
7.- Grafana Dashboards
There are 2 Grafana dashboards to monitor the node (see section “Grafana Dashboards below”.
See [9]

The Onyx Eth2.0 testnet

Onyx is an Eth2.0 testnet created by Prylabs according to the latest official specification for Eth2.0, the v0.12.1 [10] release (which is aimed to be the final).
In order to run an Onyx Eth 2.0 node you will need 3 components:
The image takes care of the Eth1.0 Geth and Eth2.0 Beacon Chain configurations and syncs. So, once flashed (and after a first reboot), Geth (Eth1.0 client) starts syncing the Goerli testnet and the Beacon Chain (Eth2.0 client) gets activated through the Prysm client, both as systemd services.
When the Goerli testnet sync is completed, the Beacon Chain starts syncing. Both chains are necessary as the validator needs to communicate with them (as explained below).
Activating the validator
Once Goerli and the Beacon chain are in sync you have just one task left, configure the Validator for enabling the staking process.
The image provides the Prysm validator client for running the staking process. With this validator, you will create an account with 2 keys (public and private) and get an HEX string that needs to be sent to the Eth 1.0 blockchain as data through a 32 ETH transaction.
The Beacon Chain (which is connected to the Eth1 chain) will detect this deposit (which includes the validator public key) and the Validator will be activated.
So, let’s get started. Geth Goerli testnet and the Beacon Chain are already syncing in the background. Goerli will sync in about 1 hour and the Beacon Chain in about 2 hours (so this will take 3 hours overall).
The easiest way to enable a Prysm validator is to use the Prylabs web portal to get Goerli ETH (testnet ETH) and follow their instructions:
https://prylabs.net/participate
Let’s break this down:
Step 1) Get Prysm
Nothing to do here. Prysm is already installed.
Step 2) Get GöETH — Test ETH
We need 32 ETH to stake (it is fake ETH as this is a tesnet). Prylabs created a faucet with a great UI so you can easily get 32.5 Goerli ETH.
You will need a web3 provider to use the faucet. Install Metamask browser extension (if you don’t have it running yet). Create an account and set the network to “Goerli test network” (on the top of the Metamask screen). Now, click once in “Metamask” and then click “Need GoETH?” button. Confirm the transaction.
Once funded, you will see something like this:
You are 0x0b2eFdbFB8EcaF7F4eCF6853cbd5eaD86510d63C and you have 32.5 GöETH. 
Step 3). Generate a validator public / private key
Go to your Raspberry Pi console and run the following command (make sure you are logged in with your ethereum user):
validator accounts create 
Press return to confirm the default path
Enter a password twice (you will need it later to run the validator so write it down and be careful). Once finished, your account will be created (under the /home/ethereum/.eth2validators directory) containing, among other info, your validator keys. Additionally you will get the deposit data as follows (this is an example):
========================Deposit Data======================= 0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001202f06da05b7e399e151f05d910369779ddd5c4c577ed264fd17040a9931b5adf10000000000000000000000000000000000000000000000000000000000000030affc980d9b2c86d1fb1fa70fd95c56dae34efcaa7bf923e020ac8941519065ff70b6b5ba6644e654ba372473b6b5837100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000a494d8e641d82ea723bc2f83b40bfd7f752ff7143cf16e57ad6627e99f0e590000000000000000000000000000000000000000000000000000000000000060b69dd0e51e68ddf8b2f5ecbdb8112b23b46dc8c7c7a68185652884b162b8000464847308b165a33aa102a00199e9c0800f53c768376fd88a3ba5f11e6d2eb3b5f6a455b97b4abe953faa270ca6e187db9739e047bf6fd51e02ab49b4ba17d376 =================================================================== ***Enter the above deposit data into step 3 on https://prylabs.net/participate*** 
Copy this data (just the hexadecimal part, from 0x to the last number), go back to step 3 of Prylabs website and paste it into the field “Your validator deposit data”.
Step 4) Start your beacon chain & validator clients
Beacon chain is already running in the background so let’s configure the validator. Just edit the /etc/ethereum/prysm-validator.conf file and replace “changeme” string with your password (you can use nano or vim editors). Now run:
sudo systemctl enable prysm-validator && sudo systemctl start prysm-validator 
Check if everything went right by running:
sudo systemctl status prysm-validator 
Step 5) Send a validator deposit
We are almost there. Just click the “Make deposit” button and confirm the transaction.
Done!
Now you need to wait for the validator to get activated. In time, the beacon chain will detect the 32 ETH deposit (which contains the validator public key) and the system will put your validator in queue. These are the validator status that you will see during the activation process:

Grafana Dashboards

We configured 2 Grafana Dashboards to let users monitor both Eth1.0 and Eth2.0 progress. To access the dashboards just open your browser and type your Raspberry IP followed by the 3000 port:
http://replace_with_your_IP:3000 user: admin passwd: ethereum 
There are 3 dashboards available:
Lot of info here. You can see for example if Geth is in sync by checking (in the Blockchain section) if Headers, Receipts and Blocks are aligned or easily find the validator status.

Whats's next

We are planning a new release for a multi testnet Eth2.0 network including Prysm, Teku and Lighthouse client (and hopefully Nimbus).

Gitcoin Grant

Gitcoin Grants round 6 is on!. If you appreciate our work, please consider donating. Even $1 can make the difference!
https://gitcoin.co/grants/384/ethereum-on-arm
Follow us on Twitter. We post regular updates and info you may be interested in!
https://twitter.com/EthereumOnARM

References

  1. https://medium.com/prysmatic-labs/introducing-the-onyx-testnet-6dadbd95d873
  2. https://goerli.net
  3. https://docs.prylabs.network/docs/getting-started/
  4. https://www.reddit.com/ethereum/comments/gf3nhg/ethereum_on_arm_raspberry_pi_4_images_release/
    1. Installation script: https://github.com/diglos/pi-gen/blob/ethraspbian2.0/stage2/04-ethereum/files/rc.local.eth2.onyx
  5. https://github.com/ethereum/go-ethereum/releases/tag/v1.9.15
  6. https://github.com/prysmaticlabs/prysm/releases/tag/v1.0.0-alpha.13
  7. https://grafana.com/
    1. Prysm Dashboard: https://github.com/GuillaumeMiralles/prysm-grafana-dashboard/tree/master
  8. https://etcher.io
  9. https://twitter.com/EthereumOnARM/status/1277184480189517824
  10. https://github.com/ethereum/eth2.0-specs/releases
  11. https://github.com/goerli/altona
submitted by diglos76 to ethereum [link] [comments]

Practicing SR since July 2017; currently have a 3+ month streak

2 accounts got shadowbanned for uploading this post. Spam filter kept on removing it this post. Messaged the moderators, but received no answer. Removed many links, so check post history for full version.

First time making a Reddit post. Estimated Reading Time: 15 minutes
Brief summary of post:
  1. History of Journey
  2. Using Subliminals (affirmations converted into audio) to reprogram the subconscious, overcome nocturnal emissions, and turbo-charge the Law of Attraction
  3. Experience from meditation retreats
  4. Massive booklist covering psychotherapy, spirituality, and general books such as negotiating and advanced social skills
  5. Fundamental shifts that occurred
  6. Experiences with semen-retention benefits
  7. How I overcame and conquered negative entities
  8. Tantric meditation method that actually works with zero side effects
  9. Experience on speaking Japanese for 1 full hour with native speakers without notes after 3 months of learning

Terminology:
Wet dream/WD – sexual dream causing semen emission while sleeping
Nocturnal Emission/NE – semen emission occurring while sleeping even without dreaming
Semen-retention/SR streak – avoiding porn, masturbation, and ejaculation whether conscious or unconscious
Nofap Hardmode – avoiding porn, masturbation, and conscious ejaculation. Unconscious ejaculation/WD is considered fine.

As the title suggests, my current streak started in the middle of June 2017. Haven’t watched any porn or masturbated in 3 years. Experienced almost all the benefits such as massive attraction (men, women, children), an aura/energy surrounding me, enhanced charisma, less need for sleep, insane levels of energy, drive, and motivation, zero anxiety or fear, massive confidence occasionally bordering on arrogance, increased manifestation/LOA, people admiring/respecting me for no reason, online attraction, less procrastination, better athletic performance, greater creativity/intelligence, the desire to live a purposeful life, greater emphasis on spirituality, and much much more. Could probably write several posts just on the benefits themselves. Only thing that didn’t improve was my skin, which was later fixed using subliminals.
It’s been a long journey, so I’ll start with background information, and later elaborate on how I managed to go from nocturnal emissions every 5 days (avg) to having a perfect SR streak for 3 months.
Used to watch anime which led to hentai (2013), and eventually western/japanese porn. Don’t even bother to search these terms on Google. It’s not worth it. Thankfully, those days are long behind me. As a side-note, I discovered the nofap/semen-retention subreddit in November 2017. Didn’t even know about SR before that.
I was raised a Catholic in a fairly religious family. Always started various streaks, and eventually broke them due to boredom/emotional coping/curiosity about new videos. Thankfully, I got good grades, read books, and was interested in self-development, but all that time spent on porn was a complete waste. Assuming I spent at least 2 hours everyday for 4 years (1460 days), it amounts to 122 complete days or around 4 months in total. It’s pretty sad on reflection, but at least the experience is now absorbed, and I can write this post.
On June 2017, after summer break started and final exams were over, I decided to permanently quit this habit. Downloaded an application called Cold Turkey and completely blocked all websites I used to visit. Now use Leechblock, which is available on most browsers (also use it to block/restrict access to non-NSFW websites which impair productivity like ESPN). Started 30 minutes of daily meditation (mindfulness + metta). Still continue the habits to this day, although the length is increased to 1 hour. Read Mindfulness in Plain English by Bhante Gunaratana and Lovingkindness by Sharon Salzberg for instructions. Have re-read these books multiple times.
Mindfulness will allow you to be self-aware of your mental conditioning, while metta (feeling compassion for yourself, a friend, neutral person, and enemy) can remove thoughts of lust and fundamentally alter your mental programming. Compassion is a very powerful exercise. Read “The Mindful Path to Self-Compassion by Christopher Germer” while you’re at it and learn tonglen. All of these books contain zero fluff, and are invaluable reads.
Started drinking 16 glasses of water (thought it would help skin, but helped in other ways), and doing 100 pushups + 100 sit-ups everyday. Increased it to 200 pushups + 200 sit-ups after 1 month. After 2 months, I made a decent amount of gains (SR helps), and people started asking me workout tips and what gym I go to. Had a Kindle Paperwhite, which is frankly one of my most valued possessions. Still works perfectly fine after 5 years, and costs only $130. Buy one now. Read a lot of books mostly consisting of biographies/spirituality/practical social skills/800+ page novels for around 6 hours per day. Still try to read for at least 15 minutes/1 chapter even when extremely busy. Will post a small booklist at the end of this post.
You can upload books to it for free if you lack money. Visit (gen.lib.rus.ec), download the ebook in epub/mobi format, open it with Calibre (https://calibre-ebook.com/), and send it to Kindle using USB. Knowledge is an investment that produces continuous returns. Warren Buffett spends 80% of his time just reading! and takes action based on that knowledge.
Even managed to have the motivation to learn Japanese by joining a foreign language exchange website. People, especially women, accepted and sent a lot of invitations to have a conversation; didn’t realize online attraction was due to SR back then. None of us showed our faces, so my physical appearance had nothing to do with it. From experience, the best way to learn a language was to make a phrase sheet with the most common phrases/questions, such as “okay”, “that’s awesome”, “what is that word in English/Japanese?” Basically a human AI bot. Don’t waste time trying to learn how to write the alphabet, although my primary purpose was to learn how to speak. Google Translate is good enough to understand the pronunciation.
I learned Japanese primarily by watching Terrace House. First watched the episode with subtitles, then re-watched it without, while simultaneously writing all the connectives/conversational phrases. You can try unique methods to remember, but brute-force memorization/review worked the best. Never tried Anki since it was cumbersome to use.
For the accent, the best way is to watch Japanese people trying to speak English, and try to mirror their accent as much as possible. It honestly helps. After 3 months, I could have a full 1 hour conversation in Japanese with a native speaker without looking at any notes. I wasn’t “fluent” (still stuttered and made mistakes), but it was a huge amount of progress for starting from scratch. Eventually after 6 months, I gave up practicing/speaking the language. I was mainly trying to fulfill a childhood fantasy, and I’m glad I tried since I learned a lot from it and got to talk with interesting people. But in reality, I stopped watching anime, and honestly never needed to speak Japanese in real-life. Now I barely remember any of the words, except a few basic phrases. Could probably last 30 seconds of full conversation at best.
So, everything was going great until December 2017. During this time period, I probably had wet dreams/nocturnal emissions every 1 – 2 months. Barely felt much difference since there was a decent time interval between emissions. Drank 2 glasses of water everyday before bed, slept on my stomach, and ate spicy food (practices that cause nocturnal emissions), but was perfectly fine. However in December I started having emissions every 2 weeks. Initially didn’t care about it. In January it started happening every 1 week. Nothing really changed in my life during this time to cause emissions to increase. Then it started happening every 5 days, every 3 days, sometimes even 2 days in a row!
Most of you will have no idea how terrible it feels to be on top of the world, and then suddenly crash down. The difference between living life with/without SR benefits is night and day. Even after sleeping 10 hours, I used to feel completely exhausted. People ignored me, or worse started “joking” around me. Complete disrespect by friends, family, and acquaintances. No energy/motivation to do anything. Constant brain fog, could barely concentrate. Felt even worse than my porn days when I ejaculated everyday. Voice completely shot, started feeling anxious about oral presentations for no reason, when I always excelled. Felt like my soul was dying. Those were really dark times. People started saying I “changed”, and started pointing out and constantly magnifying my flaws. It’s strange how people exaggerate our skills/talents on SR, while they completely ignore them post WD/ejaculation, and focus only on your flaws/mistakes. It makes you lose trust in everyone around you, as if all of them are energy vampires who only like you due to SR.
I grew desperate. During this whole time I meditated, practiced no lust/no arousal as best as possible since July 2017, yet emissions increased massively in frequency. Some occurred due to sexual dreams, but most were nocturnal emissions. Thought I had a UTI at first, and went to a general practitioner. He didn’t seem very reliable, so I went to a prominent urologist. Did all sorts of tests, paid a good amount of money, and the doctor said everything was fine. Having nocturnal emissions every 5 days was perfectly normal at my age. Encouraged me to masturbate regularly if it became an inconvenience :)
So medical science obviously failed. Started following all the tips/methods in this subreddit, and believe me I tried almost everything no matter how uncomfortable or time-consuming. Omad, avoid food/water before bed, vegetarianism, tantric meditation, different diets, various sleeping positions, no/increased meditation before bed, no/more exercise, yogic exercises, qigong, some tips mentioned by Soaring Eagle, prayed to God. None of them worked. The only method I didn’t try extensively were kegels. Initially tried a normal + reverse kegel routine, then found an article by coincidence on this subreddit about someone who permanently damaged their penis from doing kegels. Immediately stopped, thank you to that person for sharing your experience. It’s as if the universe was looking out for me. Best to avoid such risky methods even if you’re desperate. Currently sleep on my back since it avoids any "accidental physical stimulation" from occurring.
So this nocturnal emission phenomena continued for over a year. Some methods worked better than others, while for some, I wasn’t sure if it was merely the placebo effect. In mid-2019 I came across subliminal videos (finally the good part!) on YouTube. (https://www.youtube.com/watch?v=P0W5AB1sGr0) This video explains it more thoroughly, but basically you convert affirmations (sentences like “I am happy/smart/handsome”) into audio using text-to-speech software and reprogram your subconscious mind. Tried a beauty subliminal (https://www.youtube.com/watch?v=xEXaAsm-Iys) as a joke, but the next day I noticed changes in my facial structure. Listened for an hour the first day, which was easy given the music. You have no idea how amazing it feels to know that you can control your reality just by using your mind. Completely magical. Supposedly it works due to the Law of Attraction; you can find out more by reading/watching “The Secret” by Rhonda Byrne, and later reading all the books by Neville Goddard. Started using a skin subliminal as well (https://www.youtube.com/watch?v=iqi8Q80pspk and later moved onto https://www.youtube.com/watch?v=COxz8hvl14Y ), and now my skin is completely normal. Visited prominent US dermatologists, tried all sorts of acne medicine including Accutane, and even did SR, yet none of them worked. Skin was pretty terrible, and I was glad it got fixed. Took around 4 months of daily listening although it can be shortelonger depending on your belief, blockages, and levels of positivity. There’s a CIA document on holographic universes, astral projection, time travel, and psychic powers if you need scientific validation: https://www.cia.gov/library/readingroom/docs/CIA-RDP96-00788R001700210016-5.pdf
Disclaimer: Although there can be bad subliminal makers, they are very rare, and there has been only 2 of them in the history of the community. Someone named MindPower and Rose subliminals. The vast majority (99%) put positive affirmations. It’s best that you verify by checking all the comments, seeing their subscriber count, general personality, etc, but ultimately there’s no guarantee. The only way to make sure the affirmations are 100% positive and safe are to make them yourself or use a subliminal that blocks negative affirmations.
One thing to note is that physical change (biokinesis; search that term)/spiritual subliminals utilize the prana in your body to a certain extent to make changes. It makes sense since physical change is essentially a psychic poweenergy work. So your SR benefits/aura might temporarily decrease. Hydration is also recommended, and you will notice feeling thirsty. Personally drink 20 glasses of water everyday.
Obviously, my interest now turned towards using subliminals to cure nocturnal emissions. Unfortunately there’s a huge lack of subliminals regarding semen-retention or those targeted towards nocturnal emissions. Initially bought a subliminal using a paid request (you pay a subliminal maker for a specialized subliminal), but it didn’t work that well. Desired to be permanently free of nocturnal emissions, or at least reduce the frequency to once a month. So I decided to make my own subliminal. The affirmations will be posted below, and this is how I eventually cured my nocturnal emissions.
Steps on how to make your own subliminal:
  1. Write all the affirmations in a word document and save it.
  2. Download text-to-speech software like Balabolka and output the audio file in wav format (you want both uncompressed + lossless)
  3. Optional but recommended; download an audio editor like Audacity, and fast-forward the audio as much as possible using the “Change Tempo” effect. Personally I speed the audio to one second and then loop it 1000x. Continue the process as much as possible, but never make the audio length less than 1 second. Some subliminal makers make their subliminals even more powerful by creating multiple audio streams of their affirmations using different voices, merging all the voices together, and speeding them up. It’s called layering. Why super-sped affirmations work better can be somewhat explained by this article (https://www.psychologytoday.com/us/blog/sensorium/201812/experiments-suggest-humans-can-directly-observe-the-quantum), but science still doesn’t have all the answers. Will take time.
  4. Converting the affirmations to binary code (https://www.rapidtables.com/convert/numbeascii-to-binary.html) is a technique some subliminal makers use. Supposedly it penetrates the subconscious faster.
Affirmations Link: https://www.reddit.com/pureretention/comments/hg0tjb/practicing_sr_since_july_2017_finally_conquered/ (same content; scroll down to the subliminal section and download the affirmations file from the mega link)
Listened to this personal subliminal for 1 hour everyday for an entire month. Still listen just to be safe. Took months of testing and editing affirmations to make it perfect. Experienced massive sexual dreams on certain days, more than normal, and found out that entities could be responsible. Try to avoid this subreddit as well, since reading the posts can trigger memories. More energetically sensitive now, and sometimes there’s a lot of low-vibrational energy. On a side-note, porn cripples your aura and invites negative entities (https://www.awakeningstaryoga.com/blog/expanding-away-from-porn-aura).
Non-subliminal solutions:
  1. https://www.youtube.com/watch?v=lMx69hgYq0s (morphic field)
  2. https://www.youtube.com/watch?v=EWK0D1g069I (powerful aura cleanse; Tibetan bowl sounds)
  3. https://www.youtube.com/watch?v=7moRsibNyMA (reiki)
Subliminal solutions (ordered in terms of effectiveness):
  1. https://www.youtube.com/watch?v=8Kt9s5tY1YE
  2. https://www.youtube.com/watch?v=XvyPscRD1ss
  3. https://www.youtube.com/watch?v=NTmnrFzR0_Q (for spells, curses, black magic, etc)
  4. https://www.youtube.com/watch?v=8Kt9s5tY1YE (last resort)
The entire channel is a gem; these were some of the best. Have used them for a few months and feel much lighter and peaceful; experienced only headaches due to subconscious absorbing the affirmations, but zero negative effects.
Advice: Remember to immediately download any subliminal video you find that is useful in wav format (https://www.savethevideo.com/download). Subliminal channels are sometimes deleted by YouTube (spam filter) or the creators themselves.
Waited 3 whole months before deciding to make a Reddit post to make sure the method was 100% foolproof. Remember many people offering solutions in the past, yet 1 month later they would have another wd/nocturnal emission.
The first month there was a lot of fear. Will I have a wet dream/nocturnal emission tonight? Was so traumatized it was difficult getting to sleep every night. After the 2nd month, I experimented with sleeping on my stomach and eating/drinking before bed. Nothing happened. Stopped recently to stay careful.
After 2 years of suffering, this is a method that has worked. Try and see for yourself.
Present day:
How do you feel now? Some days it’s meh (due to flatline) like today; on other days I feel divine. No idea why flatline still occurs. Have regained all the benefits, feel love and happiness all the time. Experience intense states of bliss in meditation more frequently, although it’s just a distraction.
Religiously/Spiritually I’ve moved from Christianity to Buddhism/Advaita Vedanta/parts of New Age. Found them more practical and useful in life. Was inspired to aim for spiritual enlightenment after reading “The 3 pillars of Zen” by Philip Kapleau. Read it, it might change your life.
Have attended a number of meditation retreats now, along with 10-day ones. Everyone reading this post should try it. Understood how much our mental programming defined us, and that we aren’t are thoughts. Our childhood traumas define so much of our habitual reactions. Realized its okay to feel bored rather than chasing after constant stimulation.
Even attended a Jhana retreat, which is exclusive for people who have attended prior retreats. Entered intense states of meditative absorption, understood the permeability/impermanence of reality, and had all sorts of mystical experiences. Experienced past lives; can confirm my mind did not make it up, since it’s an experience you can constantly replicate using the same methods. Before attempting such methods, you need to have the ability to sit down and meditate continuously for at least 3 hours. If you live in the US, attend IMS (Insight Meditation Society) or any prominent Vipassana/Theravada related retreat. Zen is a valid form of enlightenment, but it personally felt unstructured.
Gave up music, took time since I was convinced it was needed for creativity. Instead, it was just a substitute source of dopamine and a way to avoid my emotions. Have much less brain fog after quitting. Only communicate using regular phone calls these days, which no one uses, and Snapchat/WhatsApp for texting. Avoid stories, waste of time. Instagram/TwitteFacebook are a waste of time unless you are using it for business purposes. The only social media you really need is LinkedIn.
Women: You’ll learn more about them by reading romantic novels, Korean mangas, and watching Kdramas then reading all that seduction/red pill stuff. Focus on general charisma (men and women) instead of a specific gender. Read “The Charisma Myth” by Olivia Fox Cabane; it’s the most practical book on social skills I have ever read, and possibly the most life-changing as well. Teaches you self-awareness, applies Buddhist psychology to social interaction. Used to train executives in Google, read it now (and do all the exercises). The bibliography sent me on a rabbit hole that made me read ton of books on psychotherapy, meditation, mindfulness, and Buddhism; this was before SR. Inspired me to practice meditation, although the habit only became regular after SR.
Read books such as Crucial Conversations by Al Switzer, Difficult Conversations by Douglas Stone, How to Talk so Kids will Listen by Adele Faber (works very well in general since even adults have childhood programming, and can act like children), Never Split the Difference by Chris Voss (FBI's chief international hostage and kidnapping negotiator from 2003 to 2007), Getting More by Stuart Diamond (trains negotiators at Google), and Pitch Anything by Oren Klaff (more theoretical but useful). Also read The Definitive Book of Body Language by Allan Pease and What Every Body is Saying by Joe Navarro. These are all books that will greatly improve your human interactions and contain limited fluff. Have re-read all of these books in difficult times, and they have never let me down. You should read it as well. Even if you become a monk, there’s lots of social infighting even in monasteries. Highly-developed social skills are invaluable whenever you are dealing with individuals. Read “How to make friends and influence people” by Dale Carnegie once in a while, since most forget to apply his “basic” advice. Learned a lot about oral presentations by watching Alan Shore on Boston Legal (TV show).
Current position in life? Studying for a bachelor’s degree. My family is financially well-off, and my father is paying for my college tuition and dorm. Scholarships aren’t available for all income levels. Although I come from “privilege”, the above information can help anyone regardless of their financial position. We live in an era where information is accessible to all social classes, so excuses aren’t that relevant. If you’re practicing SR, you are already 20 steps closer to success. The tips above can be applied for free as long as you have a computesmartphone. Read books starting from today, knowledge is a source of power. People spend so much time reading the news, scrolling social media feeds, reacting to comments, chatting about useless things with friends, binging shows on Netflix, browsing YouTube/Reddit, that time quietly passes by. Time is the most valuable commodity you have; don’t waste such a limited resource on things that will contribute nothing towards your purpose in life. Once it’s spent, you can never get it back.
Personally, I schedule the next day before going to bed. Leisure, Reading, Schoolwork, Meditation, everything is mapped out perfectly. Try to eliminate habits that just waste time and stick to your schedule perfectly (working on it myself). If you feel tired after work/studying, take a nap or meditate instead of receiving even more stimulation from videogames, YouTube, or other artificial dopamine sources. Try NoSurf.

Basic Booklist:

Spirituality:
  1. The End of Your World by Adyashanti (fantastic writer; must-read if you have had an awakening experience or believe you are "enlightened")
  2. How to Attain Enlightenment -> The Essence of Enlightenment by James Swartz (best introduction to Advaita Vedanta I have read so far)
  3. I am That by Sri Nisargadatta Maharaj
  4. In the Buddha's Words by Bhikkhu Bodhi (best introduction to Buddhist scripture)
  5. Why Buddhism is True by Robert Wright (secular perspective but informative; his previous book The Moral Animal is a good introduction to evolutionary psychology. Read this first if you are non-spiritual)
  6. Wisdom Wise and Deep by Shaila Catherine (comprehensive introduction by one of the best Jhana teachers in the US)
  7. Manual of Insight by Mahasi Sayadaw
  8. Emptiness: A Practical Guide by Guy Armstrong (good introduction to the Buddhist version of reality)
  9. Books by Loch Kelly (practical guide to non-dual meditation practices within Buddhism; The Little Book of Being by Diana Winston may be a better introduction)
  10. Seeing that Frees by Rob Burbea (really advanced but profound)
  11. http://awakeningtoreality.blogspot.com/2007/03/thusnesss-six-stages-of-experience.html (Buddhism > Advaita)
  12. Books by Robert Bruce such as Psychic Self-Defence and Energy Work
  13. Psychic Witch by Mat Auryn
  14. Dream Yoga by Andrew Holecek (amazing/practical book on lucid dreaming -> dream yoga)
  15. Autobiography of a Yogi
  16. The Practice of Brahmacharya by Swami Sivananda and Soaring Eagle (https://forum.nofap.com/index.php?threads/6-years-clean-rebooting-as-the-best-remedy.135983/) if you haven’t read already
  17. Xunzi trans. by Eric Hutton (final evolution of Confucianism)
Novels (use translators mentioned):
http://gen.lib.rus.ec/fiction/? for foreign literature

  1. Musashi by Eiji Yoshikawa (Taiko is decent as well, but this one was a masterpiece)
  2. Romance of the Three Kingdoms trans. Moss Roberts
  3. The Dream of the Red Chamber trans. David Hawkes (read it in the summer of 2017, profound but not all may see the deeper meaning)
  4. The Nine Cloud Dream trans. Heinz Insu Fenkl
  5. Atlas Shrugged by Ayn Rand (Inspirational for Entrepreneurs, however don’t start adopting this book as economic philosophy. It’s just a novel!)
  6. The Alchemist by Paulo Coelho (read now if you are experiencing an existential crisis)
  7. Dostoevsky’s Crime and Punishment + The Brothers Karamazov (optional reading; prefer Pevear translation)
  8. Perry Mason and Sherlock Holmes Series (pleasure reading but not useless)
Psychotherapy (never visited a therapist, but found these useful):
  1. Getting Past Your Past by Francine Shapiro (by the founder of EMDR, best practical book on trauma and exercises to resolve it)
  2. Complex PTSD: From Surviving to Thriving (another immensely practical book on recovering from trauma)
  3. Breaking the Cycle by George Collins (best practical workbook on sexual addiction I have read; all should read)
  4. Get out of your mind and into your life by Steven Hayes (Was mentioned in the charisma myth booklist; take control of your thoughts and mind by the founder of ACT)
  5. Mindful Compassion by Paul Gilbert and Choden (prominent researcher on compassion applied to therapy; part one can be boring, but part two on practical exercises is invaluable)
  6. Feeling Book by David Burns (rightfully a classic book on therapy and CBT; read if you are suffering from depression)
  7. Healing Development Trauma by Laurence Heller (best book on the impact of childhood/development trauma but meant for therapists, might explain why we use addiction to cope from childhood memories; google ACE study as well)
  8. The Boy who was raised as a Dog by Bruce Perry (stories about children experiencing trauma. Increases empathy for yourself and others; you realize how childhood trauma affects how a lot of people think and behave)
  9. Whole Again: Healing Your Heart and Rediscovering Your True Self After Toxic Relationships and Emotional Abuse by Jackson MacKenzie (fantastic book on recovering from relationship abuse. Many of us have emotional baggage that fuels coping and addiction loops. Read Healing from Hidden Abuse by Shannon Thomas as well.)
  10. Self-Compassion by Kristen Neff (optional reading, but complimentary)
For biographies, read those of presidents and important leaders. Also about famous/successful individuals. Read all of Ron Chernow’s books. Abuse the Amazon Search Engine and look through their categories. Reading biographies can fundamentally enhance your worldview so you realize that real-life issues are much more nuanced and gray rather than black and white. Also shows how successful people deal with difficult crises and their perspective on life. Especially for public policy. If a President implements an economic policy that has short-term gains, but long-term loss, he has a greater chance of being re-elected. However, short-term loss in favor of long-term gain is the correct policy. Employ critical-thinking! Avoid cable news even if you need to stay informed. Don’t even have a television in my house. Unnecessary. Just read 2 – 3 reputable news sources for 20 minutes max. Sometimes I even avoid the news since there’s too much negativity.
https://www.reddit.com/kundalini/comments/1unyph/a_tantric_perspective_on_the_use_of_sexual_energy/ (tantric meditation technique that actually works; you are supposed to do it for 1 hour. Optional.)
https://www.reddit.com/kundalini/comments/2zn8ev/grounding_201_two_effective_quick_methods/ (energetic protection + grounding method after doing the tantric meditation)
Avoid learning Mantak Chia’s techniques from a book, since some have suffered side-effects to their energetic/biological body. For NEO, Tibetan buddhists practice meditation for 13 years before attempting it (https://en.wikipedia.org/wiki/Karmamudr%C4%81). Not easy. Not sure about women, since SR streak is more important. Don’t pick a partner to fulfill some kind of emotional void, or due to societal programming where women are held to be the ultimate goal. Spiritual Enlightenment is the ultimate goal now, but even enlightened people need money for food and shelter.
Youtubers I follow are Graham Stephan, Ryan Serhant, Rupert Spira, and https://www.youtube.com/channel/UCUX1V5UNWP1RUkhLewe77ZQ (cured women objectification for me; wholesome content) although mostly I avoid the website. Easy to loose track of time.
Avoid smoking, alcohol, recreational drug use (https://www.elitedaily.com/wellness/drugs-alcohol-aura-damage/1743959), casual sex (https://mywakingpath.wordpress.com/tag/aura/; sensitive images but useful), and fast food. Budget your money, and learn how to save as much as possible.
Hope everyone reading this post experiences their definition of success and leads a purposeful life. Will end it by stating two quotes that have inspired and guided me:
“You yourself have to change first, or nothing will change for you!”
― Hideaki Sorachi
“It is not important to be better than someone else, but to be better than you were yesterday.”
― Jigoro Kano (Founder of Judo)
Update 1, 2, 3: Added a post summary and the audio as well in the affirmations link
Update 4: https://starseedsunited.com/negative-entities-and-psychic-attacks (basic article on entities)
Some solutions are posted above. Updated* daily routine:
  1. https://www.reddit.com/kundalini/comments/1xyp5k/a_simple_and_universal_white_light_protection/ (basic psychic self-defence)
  2. https://www.youtube.com/watch?v=8Kt9s5tY1YE (at least once everyday; cures sexual dreams and flushes all entities)
  3. https://www.youtube.com/watch?v=yLeubTQv65Q (best shielding subliminal so far; general protection. Listen at least once everyday)
Note: Will continuously update this post based on further clarification. Close to 40,000 character word limit.
submitted by RisingSun7799 to Semenretention [link] [comments]

Binary Options Robot - Automated Binary Options Trading ... 1 minute binary option strategy moving averages - YouTube This is how to trade Binary Options Full Time! - YouTube Binary Options Strategy 2020  100% WIN GUARANTEED ... Binary Option Robot Auto Trading Software - YouTube Spider Indicator for Binary option  free download - YouTube The best robot binary option 2018 Binary Option Robot 100% Automated Trading Software 100% FREE SIGNAL For IQ Option - binary options - YouTube

Binary Option Robot 1.9.25 for Mac is free to download from our application library. The latest version of the application can be downloaded for Mac OS X 10.6 or later. Binary Option Robot for Mac lies within Business Tools, more precisely General. The following version: 1.8 is the most frequently downloaded one by the program users. This Mac app was originally produced by Binary Options Robot. Binary Options Software Mac:Forex cho người mới bắt đầu. 23rd October 2020 Comment(0) Forex Cho Người Mới Bắt Đầu Over The Counter Otc Opções Binárias Horário. sàn giao dịch binomo; ikili opsiyon vergi; lo que hay que aprender y tips de opciones binarias; planilha de juros compostos opções binárias ; que dias habren las opciones binarias en iq option; binary ... binary option software free download - IQ Forex - Trading Binary Option on FX & Crypto, ExpertOption Binary Options, Binary Options Signals, and many more programs Binary options trading may have gotten a bad rap because of its all-or-nothing premise, but the high payouts keep traders coming back for more. This is why binary options markets remain strong in various regions around the world, particularly in Asia. To avoid fraud in binary options trading, choose a trustworthy broker. These brokers can help ... Finally binary options is a trading signals, such as a simple, original binary software. Trading strategy it's up nor accurate filter for holding crypto charts and the money. Pros commission-free trading binary options types with the best crypto evolution has experienced traders want to increase their binary options bot for mac website. The binary options significant risks a profitable trading ... Binary Options Software Mac. What makes great means i hope, the time to a living. Athena investment income without doubt uncertain or global news to justify taking a day trading. It all the company that pay significantly higher payout from your favour by convertbinary. Blockchain and speculate on getting hacked regularly engage in a wide-range of inception price action. The simple binary rate ... It has an easy to use interface and often sees its user get up to an over 80% return on their investment on binary options. The software is designed by professionals for professionals and it can be used by both veteran and novice traders alike. It is compatible with both Windows and Mac driven PC’s and most mobile devices such as tablets. Apple binary options - Der Favorit . Herzlich Willkommen zu unserem Test. Die Betreiber dieses Portals haben es uns zur Aufgabe gemacht, Ware jeder Variante zu checken, damit Sie als Kunde unkompliziert den Apple binary options ausfindig machen können, den Sie kaufen möchten. Trade From Any Device Including Mac, PC, Tablet, or Smartphone; 100% Secured Trading With Data Protection; CFD Trading, One-Touch, and 60 Second Trades; 1 Hour Withdrawal Processing ; Visit Broker. RaceOption is a binary options broker that is based in the UK and established in 2014. RaceOption processes more than 10,000 trades per day and is one of the only companies that allow clients from ... Why is the BinaryOptionRobot the best software? Binary Options Robot will make a user’s trades 100% automatic and it’s estimated that the trader who uses it will win over 80% of the time. It is highly compatible on both Windows and Mac driven computers and also with just about any mobile device or tablet. These are just a few of the reasons why it is quickly making a name for itself as the ...

[index] [5628] [21488] [28880] [25268] [23808] [4633] [28585] [6521] [9259] [24656]

Binary Options Robot - Automated Binary Options Trading ...

100% FREE SIGNAL For IQ Option - binary options The road to success through trading IQ option Best Bot Reviews Iq Option 2020 ,We make videos using this softwhere bot which aims to make it easier for you t... Binary Options Robot - Automated Binary Options Trading Using Binary Option Robot Test Binary Options Robot here - http://track.logic.expert/67b0b668-c6a4-42... The Best Binary Option Robot: 100% Automated Binary Options Trading Software 83% Average Winning Rate Very easy to use: No prior knowledge required Compatible Mac, Windows, Mobile & Tablet 60 Days ... This is how I have traded Binary for the past 3 years. Thank you for watching my videos, hit the subscribe button for more content. Check out our members res... In this 1 minute binary option strategy - moving averages you will learn a simply binary options trading technique that will give a high win rate. Binary opt... http://www.binary-option-robot.com/?camp=youtube_en Binary Option Robot is an automated software that trades automatically the Binary Option Market Online. I... This software is 100% user friendly. Using this software you can works with 11 Assets and you can select Trading time 1 minute to 60 minutes Frequently Asked Questions Is this Full Version of ... my auto-trading software can work with any indicators on mt4 to send signals to binary account . you can choose intrabar or next bar option , you can set mar...

https://arab-binary-option.laulibiggeodes.gq