Estoy interesado en organizar una competencia en la que los participantes (todos los cuales son remotos) crearán diseños FPGA / RTL y serán evaluados en ciertas métricas de rendimiento como velocidad / latencia / tamaño / etc.
El problema es que el software utilizado para el proceso de compilación (Xilinx Vivado) no tiene resultados deterministas / repetibles en diferentes máquinas y sistemas operativos. Por ejemplo, dos participantes que ejecutan diferentes versiones de Windows, que crean exactamente el mismo código con la misma configuración, obtendrían resultados diferentes. Si bien los participantes pueden tener instalada una copia local del software para obtener una línea de base de su rendimiento de diseño, los resultados finales de todos los participantes deberán estar integrados en la misma máquina.
Como tal, estoy considerando alojar un servidor Linux desde casa con el software Vivado instalado y encontrar un método para permitir que los participantes carguen su código, y hacer que pase por un proceso automatizado de compilación y verificación.
El servidor no tendrá ningún tipo de información confidencial (los resultados finales serán públicos, esa es la idea), sin embargo, me pregunto si debería tener algún tipo de preocupación de seguridad cuando hago algo como esto. Tengo aproximadamente otros 4 dispositivos en cualquier momento en mi red doméstica, y principalmente quiero estar seguro de que no crearé ninguna vulnerabilidad para ellos. En cuanto al servidor en sí, debo asegurarme de que soy el único con acceso de root y la capacidad de modificar archivos fuera del espacio donde se carga el código.
También necesitaré un método para permitir que un número indeterminado de participantes cargue un código sin tener que crear una cuenta de usuario para cada uno, al mismo tiempo que evite actividades maliciosas. Ni siquiera estoy seguro de si eso es posible, sin embargo, agradecería enormemente cualquier aportación.