I'm interested in hosting a competition in which participants (all of whom are remote) will be creating FPGA/RTL designs and judged on certain performance metrics such as speed/latency/size/etc.

The problem is, the software used for the build process (Xilinx Vivado) does not have deterministic/repeatable results across different machines and operating systems. For example, Two participants running different versions of Windows, building the exact same code with the same config settings, would get different results. While participants can have a local copy of the software installed to get a baseline of their design performance, the final results from all participants will have to all be built on the same machine.

As such I'm considering hosting a Linux server from home with the Vivado software installed, and finding a method to allow participants to upload their code, and have it go through an automated build and verification process.

The server won't have any sort of sensitive information on it(final results will be public, that's the idea), however I'm wondering if I should have any sort of security concerns when doing something like this. I have about 4 other devices at any given time on my home network, and mainly just want to be sure I won't be creating any vulnerabilities for them. As for the server itself, I need to ensure I am the only one with root access and the ability to modify files outside the space where code is uploaded.

I will also need a method of allowing an indeterminate number of participants to upload code without having to create a user account for each one, while simultaneously preventing malicious activity. I'm not even sure if that is possible, however I would greatly appreciate any input!


you can get a VPS for a month for $5 USD from one of the big VPS providers. You can even get one hourly, just for the competition. That way, you risk nothing to your home and don't rely on residential internet to host your competition.

  • Vivado takes up around 10GB of disk space and needs 16GB of RAM to perform well. I have heard of those hosting services however wasn't sure how much I'd get for just $5 a month. At the same time I'm only currently expecting around 20-30 participants, who would only be uploading once or twice per week. – Legare Feb 16 '18 at 16:59
  • fair enough, it might be more like $20 or $40 a month. or just get a big one hourly and a smaller one for a month to setup. I'd still prefer that than giving out my home network details... – dandavis Feb 16 '18 at 17:27

Is is dangerous to host some software of external origin? Yes it is for numerous reasons. One is the possibility of intentional malware, other is the possibility of an unintentional security flaw that could be used by a third party person to attack your system.

IMHO, you cannot trust all those codes, so you should set up some defense lines to prevent an attack from those application to your own data. A simple yet reasonably efficient way would be to prepare an empty host in a virtual machine with all what is required including Vivado and [write there your own required pieces of software] take a snapshot of it, install one of the competing applications at a time and test or benchmark it. Then restore the snapshot and proceed to next one. Of course this assumes that you have some firewall rules to prevent any unauthorized access from that VM to your private network.

If you are truely paranoid, you should use a dedicated machine and a physical DMZ network to avoid possible VM evasion, because we now know about Spectre and Meltdown. That is now a matter of performance/cost ratio...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.