Protocol Engineer @ https://livepeer.org Low-key tinkering with https://livepool.io and https://tenderize.me
In this article, I’ll walk you through setting up a Livepeer node from start to finish, give you an idea of what type of hardware is required and give you an idea of how much you could earn.
As a hardware provider wanting to provide video infrastructure services you can connect to the Livepeer network which serves as a trustless intermediary to allow you to exchange your services with those that require it such as live streaming applications (e.g. PlayDJ.tv ) .
Currently, the Livepeer network provides the service of Video Transcoding. This takes an input video in a certain resolution and bitrate and converts it into other resolutions and bitrates so that every end-user can enjoy the content regardless of their connection speed. This process is what enables you to select different video qualities on websites such as YouTube or Twitch.tv.
Video Mining is an alternative term for Video Transcoding that is more intuitive in the blockchain space.
When transcoding or video mining you take in small chunks of source video from a Broadcaster, in e.g. a 1080p resolution, and convert them to whatever resolutions the Broadcaster requires. Most common are 720p, 480p and 360p.
Just as with cryptocurrency mining this process can be performed by both a CPU and GPU, where the latter usually outperforms the former. On Nvidia graphic cards video transcoding happens on specific chips (NVENC for encoding and NVDEC for decoding) rather than the CUDA cores used for general compute (the video memory is a shared resource). This means your machine can still perform a variety of other tasks while you are video mining. This is interesting because it allows the Livepeer network to tap into existing hardware that is already running. So if you own an Nvidia GPU this is worth checking out.
Currently, there is Video Mining Pool called Livepool, created by yours truly. It works similarly to a cryptocurrency mining pool. You connect your node to the pool, provide it with an address you want to receive payouts on and you’re off to the races!
Check out https://livepool.io for instructions.
For this article we’ll only consider GPU setups.
You’ll need at least one Nvidia GPU, currently Livepeer does not support AMD cards. A list of compatible cards can be found here. Generally speaking, you’d want at least an Nvidia Geforce GTX 1050 or better. Newer generations of cards have better NVENC and NVDEC chips that produce a better quality video.
Other hardware for your machine is up to you, just make sure everything you order is compatible and don’t make the same mistake I did (more on that later). Generally, you want a decent processor, at least 8 GB of RAM, and preferably an SSD.
First thing you’ll need if you’re going to run everything on-premise you’ll need a static IP from your ISP, access to good bandwidth, and unlimited data (you can expect a couple of terrabytes of data exchange monthly).
You don’t need a static IP if you split your set-up between a lightweight GPU node (or multiple) on-premise and a “business logic” node ran from a datacenter.
Second, you’ll need access to the Ethereum blockchain. You can either run your own node or create a free account on https://infura.io or https://alchemy.io (I only tested infura limits for the free tier).
Since Livepeer runs on the Ethereum blockchain you’ll need some Ethereum to pay for transaction costs. You’ll also need some Livepeer Tokens to put up as a security bond and to indicate that you are open for work. You can get Ethereum on most cryptocurrency exchanges.
You can then get some Livepeer Token via Uniswap, click “Get LPT” in the bottom left of the Livepeer Network Explorer to open the Uniswap widget.
Last year I purchased two barely used Nvidia Geforce GTX 1070 cards from a gaming team for about 400 EUR. They were collecting dust until now, but I decided with the huge increase in demand on the Livepeer network I’d finally put them to good use.
For my CPU I got a AMD Ryzen 5 3600 3,6 Ghz , this is a decent mid-range CPU and will do the job just fine and will even allow you to run some other stuff as well. At first I ordered a Ryzen 5 2600 but it was incompatible with my motherboard, which set me back a week waiting for the new CPU to arrive.
I have a 250 Mbps connection and can upgrade to gigabit if needed, I also have a static IP from my ISP for 25 EUR monthly but I don’t use it for my Livepeer setup currently.
I run my 2 GPUs from home and my “business logic” node , also known as an Orchestrator, from a datacenter (e.g. AWS, DigitalOcean, Azure, … ).
It’s been nearly over 5 years since I’ve built a computer so after some hurdles such as ordering the wrong CPU, not knowing cooling paste was already applied, getting the power supply in the case I’ve learn that I’m terrible at this but probably even worse at cable management. Looks like I ain’t closing this baby up with the tempered glass pane anytime soon.
This will be a rough rundown, I won’t go into every detail here, for that you can follow the official documentation.
1. Download the software
You can download a compressed executable from the releases page on Github: https://github.com/livepeer/go-livepeer/releases
2. Unpack your download
On windows you can just use something like WinRAR or WinZip, otherwise uncompress the tarball using the following command
tar -C /usr/local/bin -xzf livepeer-linux-amd64.tar.gz
3. Move the unpacked Livepeer binary into your executable PATH, alternatively you can just run it from that directory as well.
4. If you run your setup fully on-premise you’ll need to open a port on the public internet and forward it to port 8935 (default) on your machine.
5. We can now start our node for the first time and register it with the Livepeer protocol. On first start it will automatically create an Ethereum account for you and ask you to choose a password. By default you can find the encrypted private key for this account in ~/.lpData/mainnet/keystore .
livepeer -network mainnet -orchestrator -transcoder -ethUrl <your_infura_url> -pricePerUnit 1 -serviceAddr <your public IP>:8935
6. Next start up the Livepeer CLI: livepeer_cli
under “Node Stats” find your “ETH Account” and send it theEthereum and Livepeer Tokens you purchased earlier.
7. Once your LPT and ETH has arrived pick 12. Invoke multi-step "become an orchestrator".
First enter your reward cut, this will be your commission on Livepeer Tokens that are delegated to your node from other users that will earn inflationary Livepeer tokens.
Then enter which percentage of your earned fees from video mining you would like to share with users that delegate their Livepeer tokens to you.
After that you will have to set your publicly accessibly service URL, this will be your public IP on port 8935.
Next you will be asked to bond Livepeer Tokens, bond all the LPT you have sent yourself earlier.
Once you have completed this step you have to wait until the next round of the protocol to start until your node becomes active. Rounds take a little less than a day.
The node has been running for a little over a month now and has so far earned 0.87 ETH or about 1200$ at current prices which is almost enough for me to retrieve my hardware cost already, although I should probably discount about 300$ for transaction fees which were pretty steep recently. Since I already pay my ISP regardless the only extra costs are the electricity which is way lower than mining (currently pulling 10–60 Watt per GPU) and my datacenter costs which are about 100$ a month.
I experimented for about a week with a full on-premise set-up which greatly improved my results on the Livepeer leaderboard but resulted in much less actual work received due to me being further away from the Broadcasting nodes where most demand comes from.
Drop by the Livepeer Discord server, we’re happy to help you!
(Also published here)
Create your free account to unlock your custom reading experience.