diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index e93d94ab..924e949c 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -custom: ['https://duinocoin.com/donate', 'https://paypal.me/duinocoin'] +custom: ['https://duinocoin.com/donate', 'https://paypal.me/revoxhere'] diff --git a/AVR_Miner.py b/AVR_Miner.py index 286f583f..b6c2b514 100644 --- a/AVR_Miner.py +++ b/AVR_Miner.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -Duino-Coin Official AVR Miner 3.18 © MIT licensed +Duino-Coin Official AVR Miner 3.2 © MIT licensed https://duinocoin.com https://github.com/revoxhere/duino-coin Duino-Coin Team & Community 2019-2022 @@ -109,7 +109,7 @@ def port_num(com): class Settings: - VER = '3.18' + VER = '3.2' SOC_TIMEOUT = 15 REPORT_TIME = 120 AVR_TIMEOUT = 7 # diff 16 * 100 / 258 h/s = 6.2 s @@ -637,10 +637,20 @@ def load_config(): + Fore.YELLOW + get_string('wallet') + Fore.RESET + get_string('register_warning')) - username = input( - Style.RESET_ALL + Fore.YELLOW - + get_string('ask_username') - + Fore.RESET + Style.BRIGHT) + correct_username = False + while not correct_username: + username = input( + Style.RESET_ALL + Fore.YELLOW + + get_string('ask_username') + + Fore.RESET + Style.BRIGHT) + if not username: + username = choice(["revox", "Bilaboz"]) + + r = requests.get(f"https://server.duinocoin.com/users/{username}", + timeout=Settings.SOC_TIMEOUT).json() + correct_username = r["success"] + if not correct_username: + print(get_string("incorrect_username")) mining_key = input(Style.RESET_ALL + Fore.YELLOW + get_string("ask_mining_key") @@ -818,6 +828,13 @@ def greeting(): + Fore.RESET + get_string('rig_identifier') + Style.BRIGHT + Fore.YELLOW + rig_identifier) + print( + Style.DIM + Fore.MAGENTA + + Settings.BLOCK + Style.NORMAL + + Fore.RESET + get_string("using_config") + + Style.BRIGHT + Fore.YELLOW + + str(Settings.DATA_DIR + '/Settings.cfg')) + print( Style.DIM + Fore.MAGENTA + Settings.BLOCK + Style.NORMAL @@ -1006,7 +1023,7 @@ def mine_avr(com, threadid, fastest_pool): motd = motd.replace("\n", "\n\t\t") pretty_print("net" + str(threadid), - " MOTD: " + Fore.RESET + get_string("motd") + Fore.RESET + Style.NORMAL + str(motd), "success") break diff --git a/ESP8266_Code/ESP8266_Code.ino b/ESP8266_Code/ESP8266_Code.ino index ab056a15..a5cd0d8a 100644 --- a/ESP8266_Code/ESP8266_Code.ino +++ b/ESP8266_Code/ESP8266_Code.ino @@ -1,7 +1,7 @@ /* - ____ __ __ ____ _ _ _____ ___ _____ ____ _ _ + ____ __ __ ____ _ _ _____ ___ _____ ____ _ _ ( _ \( )( )(_ _)( \( )( _ )___ / __)( _ )(_ _)( \( ) - )(_) ))(__)( _)(_ ) ( )(_)((___)( (__ )(_)( _)(_ ) ( + )(_) ))(__)( _)(_ ) ( )(_)((___)( (__ )(_)( _)(_ ) ( (____/(______)(____)(_)\_)(_____) \___)(_____)(____)(_)\_) Official code for ESP8266 boards version 3.18 @@ -46,37 +46,82 @@ #include #include +// Uncomment the line below if you wish to use a DHT sensor (Duino IoT beta) +// #define USE_DHT + // Uncomment the line below if you wish to register for IOT updates with an MQTT broker // #define USE_MQTT -// Uncomment the line below if you wish to use a DHT sensor (Duino IoT beta) -// #define USE_DHT +// If you don't know what MQTT means check this link: +// https://www.techtarget.com/iotagenda/definition/MQTT-MQ-Telemetry-Transport + +#ifdef USE_DHT + float temp = 0.0; + float hum = 0.0; + + // Install "DHT sensor library" if you get an error + #include + // Change D3 to the pin you've connected your sensor to + #define DHTPIN D3 + // Set DHT11 or DHT22 accordingly + #define DHTTYPE DHT11 + + DHT dht(DHTPIN, DHTTYPE); +#endif #ifdef USE_MQTT + // Install "PubSubClient" if you get an error #include - // update below mqtt broker parameters - #define mqtt_server "your_mqtt_server" + + long lastMsg = 0; + + // Change the part in brackets to your MQTT broker address + #define mqtt_server "broker.hivemq.com" + // broker.hivemq.com is for testing purposes, change it to your broker address + + // Change this to your MQTT broker port #define mqtt_port 1883 - #define mqtt_user "your_mqtt_username" - #define mqtt_password "your_super_secret_mqtt_password" - // update humidity_topic to your mqtt humidity topic + // If you want to use user and password for your MQTT broker, uncomment the line below + // #define mqtt_use_credentials + + // Change the part in brackets to your MQTT broker username + #define mqtt_user "My cool mqtt username" + // Change the part in brackets to your MQTT broker password + #define mqtt_password "My secret mqtt pass" + + // Change this if you want to send data to the topic every X milliseconds + #define mqtt_update_time 5000 + + // Change the part in brackets to your MQTT humidity topic #define humidity_topic "sensor/humidity" - // update temperature_topic to your mqtt temperature topic + // Change the part in brackets to your MQTT temperature topic #define temperature_topic "sensor/temperature" - + WiFiClient espClient; PubSubClient mqttClient(espClient); - void mqttReconnect() { + void mqttReconnect() + { // Loop until we're reconnected - while (!mqttClient.connected()) { + while (!mqttClient.connected()) + { Serial.print("Attempting MQTT connection..."); + + // Create a random client ID + String clientId = "ESP8266Client-"; + clientId += String(random(0xffff), HEX); + // Attempt to connect - // If you do not want to use a username and password, change next line to - // if (mqttClient.connect("ESP8266Client")) { - if (mqttClient.connect("ESP8266Client", mqtt_user, mqtt_password)) { + #ifdef mqtt_use_credentials + if (mqttClient.connect("ESP8266Client", mqtt_user, mqtt_password)) + #else + if (mqttClient.connect(clientId.c_str())) + #endif + { Serial.println("connected"); - } else { + } + else + { Serial.print("failed, rc="); Serial.print(mqttClient.state()); Serial.println(" try again in 5 seconds"); @@ -85,56 +130,28 @@ } } } - - bool checkBound(float newValue, float prevValue, float maxDiff) { - return !isnan(newValue) && - (newValue < prevValue - maxDiff || newValue > prevValue + maxDiff); - } - - long lastMsg = 0; - float diff = 0.01; // change this to the minimum difference considered for update - -#endif - -#ifdef USE_DHT - - float temp = 0.0; - float hum = 0.0; - float temp_weight = 0.9; // 1 for absolute new value, 0-1 for smoothing the new reading with previous value - float temp_min_value = -20.0; - float temp_max_value = 70.0; - float hum_weight = 0.9; // 1 for absolute new value, 0-1 for smoothing the new reading with previous value - float hum_min_value = 0.1; - float hum_max_value = 100.0; - - // Install "DHT sensor library" if you get an error - #include - // Change D3 to the pin you've connected your sensor to - #define DHTPIN D3 - // Set DHT11 or DHT22 accordingly - #define DHTTYPE DHT11 - DHT dht(DHTPIN, DHTTYPE); #endif -namespace { -// Change the part in brackets to your WiFi name -const char* SSID = "My cool wifi name"; -// Change the part in brackets to your WiFi password -const char* PASSWORD = "My secret wifi pass"; -// Change the part in brackets to your Duino-Coin username -const char* USERNAME = "my_cool_username"; -// Change the part in brackets if you want to set a custom miner name (use Auto to autogenerate, None for no name) -const char* RIG_IDENTIFIER = "None"; -// Change the part in brackets to your mining key (if you enabled it in the wallet) -const char* MINER_KEY = "None"; -// Change false to true if using 160 MHz clock mode to not get the first share rejected -const bool USE_HIGHER_DIFF = false; -// Change true to false if you don't want to host the dashboard page -const bool WEB_DASHBOARD = true; -// Change false to true if you want to update hashrate in browser without reloading page -const bool WEB_HASH_UPDATER = false; -// Change true to false if you want to disable led blinking(But the LED will work in the beginning until esp connects to the pool) -const bool LED_BLINKING = true; +namespace +{ + // Change the part in brackets to your WiFi name + const char *SSID = "My cool wifi name"; + // Change the part in brackets to your WiFi password + const char *PASSWORD = "My secret wifi pass"; + // Change the part in brackets to your Duino-Coin username + const char *USERNAME = "my_cool_username"; + // Change the part in brackets if you want to set a custom miner name (use Auto to autogenerate, None for no name) + const char *RIG_IDENTIFIER = "None"; + // Change the part in brackets to your mining key (if you enabled it in the wallet) + const char *MINER_KEY = "None"; + // Change false to true if using 160 MHz clock mode to not get the first share rejected + const bool USE_HIGHER_DIFF = false; + // Change true to false if you don't want to host the dashboard page + const bool WEB_DASHBOARD = true; + // Change false to true if you want to update hashrate in browser without reloading page + const bool WEB_HASH_UPDATER = false; + // Change true to false if you want to disable led blinking(But the LED will work in the beginning until esp connects to the pool) + const bool LED_BLINKING = true; /* Do not change the lines below. These lines are static and dynamic variables that will be used by the program for counters and measurements. */ @@ -160,7 +177,6 @@ const char WEBSITE[] PROGMEM = R"=====( https://github.com/revoxhere/duino-coin https://duinocoin.com --> - @@ -169,7 +185,6 @@ const char WEBSITE[] PROGMEM = R"=====( -
@@ -323,7 +338,6 @@ const char WEBSITE[] PROGMEM = R"=====(
- )====="; @@ -654,24 +668,17 @@ void loop() { String(START_DIFF) + SEP_TOKEN + String(MINER_KEY) + END_TOKEN); #endif + #ifdef USE_DHT - float newTemp = dht.readTemperature(); - float newHum = dht.readHumidity(); - if ((temp >= temp_min_value) && (temp <= temp_max_value)) { - if ((newTemp >= temp_min_value) && (newTemp <= temp_max_value)) { - newTemp = temp_weight * newTemp + (1.0f - temp_weight) * temp; // keep weighted measurement value - } else { - newTemp = temp; // keep current temp - } - } // else - keep newTemp as is + temp = dht.readTemperature(); + hum = dht.readHumidity(); - if ((hum >= hum_min_value) && (hum <= hum_max_value)) { - if ((newHum >= hum_min_value) && (newHum <= hum_max_value)) { - newHum = hum_weight * newHum + (1.0 - hum_weight) * hum; // keep weighted measurement value - } else { - newHum = hum; // keep current hum - } - } // else - keep newHum as is + Serial.println("DHT readings: " + String(temp) + "*C, " + String(hum) + "%"); + client.print("JOB," + + String(USERNAME) + SEP_TOKEN + + String(START_DIFF) + SEP_TOKEN + + String(MINER_KEY) + SEP_TOKEN + + String(temp) + "@" + String(hum) + END_TOKEN); #endif #ifdef USE_MQTT @@ -680,33 +687,16 @@ void loop() { mqttReconnect(); } mqttClient.loop(); - - long now = millis(); - if (now - lastMsg > 1000) { - lastMsg = now; #ifdef USE_DHT - if (checkBound(newTemp, temp, diff)) { - temp = newTemp; + long now = millis(); + if (now - lastMsg > mqtt_update_time) { + lastMsg = now; mqttClient.publish(temperature_topic, String(temp).c_str(), true); - } - if (checkBound(newHum, hum, diff)) { - hum = newHum; - mqttClient.publish(humidity_topic, String(hum).c_str(), true); + mqttClient.publish(humidity_topic, String(hum).c_str(), true); } #endif - } #endif - - #ifdef USE_DHT - - Serial.println("DHT readings: " + String(temp) + "*C, " + String(hum) + "%"); - client.print("JOB," + - String(USERNAME) + SEP_TOKEN + - String(START_DIFF) + SEP_TOKEN + - String(MINER_KEY) + SEP_TOKEN + - String(temp) + "@" + String(hum) + END_TOKEN); - #endif waitForClientData(); String last_block_hash = getValue(client_buffer, SEP_TOKEN, 0); diff --git a/PC_Miner.py b/PC_Miner.py index dd0a5c01..1a30d10f 100644 --- a/PC_Miner.py +++ b/PC_Miner.py @@ -1,18 +1,17 @@ #!/usr/bin/env python3 """ -Duino-Coin Official PC Miner 3.18 © MIT licensed +Duino-Coin Official PC Miner 3.2 © MIT licensed https://duinocoin.com https://github.com/revoxhere/duino-coin Duino-Coin Team & Community 2019-2022 """ -from threading import Semaphore from time import time, sleep, strptime, ctime from hashlib import sha1 from socket import socket from multiprocessing import cpu_count, current_process -from multiprocessing import Process, Manager +from multiprocessing import Process, Manager, Semaphore from threading import Thread from datetime import datetime from random import randint @@ -26,7 +25,6 @@ import json import zipfile -import requests from pathlib import Path from re import sub from random import choice @@ -38,6 +36,9 @@ from locale import getdefaultlocale from configparser import ConfigParser +import io + +running_on_rpi = False configparser = ConfigParser() printlock = Semaphore(value=1) @@ -57,10 +58,18 @@ def handler(signal_received, frame): + get_string("goodbye"), "warning") + if running_on_rpi and user_settings["raspi_leds"] == "y": + # Reset onboard status LEDs + os.system( + 'echo mmc0 | sudo tee /sys/class/leds/led0/trigger >/dev/null 2>&1') + os.system( + 'echo 1 | sudo tee /sys/class/leds/led1/brightness >/dev/null 2>&1') + if sys.platform == "win32": _exit(0) else: - Popen("kill $(ps awux | grep PC_Miner | grep -v grep | awk '{print $2}')", shell=True, stdout=PIPE) + Popen("kill $(ps awux | grep PC_Miner | grep -v grep | awk '{print $2}')", + shell=True, stdout=PIPE) def install(package): @@ -74,6 +83,14 @@ def install(package): execl(sys.executable, sys.executable, *sys.argv) +try: + import requests +except ModuleNotFoundError: + print("Requests is not installed. " + + "Miner will try to automatically install it " + + "If it fails, please manually execute " + + "python3 -m pip install requests") + install("requests") try: from colorama import Back, Fore, Style, init @@ -119,7 +136,7 @@ class Settings: """ ENCODING = "UTF8" SEPARATOR = "," - VER = 3.18 + VER = 3.2 DATA_DIR = "Duino-Coin PC Miner " + str(VER) TRANSLATIONS = ("https://raw.githubusercontent.com/" + "revoxhere/" @@ -129,12 +146,13 @@ class Settings: SETTINGS_FILE = "/Settings.cfg" TEMP_FOLDER = "Temp" - SOC_TIMEOUT = 15 + SOC_TIMEOUT = 20 REPORT_TIME = 5*60 DONATE_LVL = 0 + RASPI_LEDS = "y" try: - # Raspberry Pi latin users can't display this character + # Raspberry Pi latin encoding users can't display this character BLOCK = " ‖ " "‖".encode(sys.stdout.encoding) except: @@ -145,7 +163,7 @@ class Settings: or bool(os.name == "nt" and os.environ.get("WT_SESSION"))): # Windows' cmd does not support emojis, shame! - # And some codecs same, for example the Latin-1 encoding don`t support emoji + # Same for different encodinsg, for example the latin encoding doesn't support them try: "⛏ ⚙".encode(sys.stdout.encoding) # if the terminal support emoji PICK = " ⛏" @@ -364,7 +382,7 @@ def fetch_pool(retry_count=1): "info", "net0") response = requests.get( "https://server.duinocoin.com/getPool", - timeout=10).json() + timeout=Settings.SOC_TIMEOUT).json() if response["success"] == True: pretty_print(get_string("connecting_node") @@ -404,7 +422,7 @@ def load(donation_level): f"{Settings.DATA_DIR}/Donate.exe").is_file(): url = ('https://server.duinocoin.com/' + 'donations/DonateExecutableWindows.exe') - r = requests.get(url, timeout=15) + r = requests.get(url, timeout=Settings.SOC_TIMEOUT) with open(f"{Settings.DATA_DIR}/Donate.exe", 'wb') as f: f.write(r.content) @@ -426,7 +444,7 @@ def load(donation_level): return if not Path( f"{Settings.DATA_DIR}/Donate").is_file(): - r = requests.get(url, timeout=15) + r = requests.get(url, timeout=Settings.SOC_TIMEOUT) with open(f"{Settings.DATA_DIR}/Donate", "wb") as f: f.write(r.content) @@ -528,9 +546,8 @@ def calculate_uptime(start_time): def pretty_print(msg: str = None, state: str = "success", - sender: str = "sys0"): - global printlock - + sender: str = "sys0", + printlock=printlock): """ Produces nicely formatted CLI output for messages: HH:MM:S |sender| msg @@ -553,15 +570,16 @@ def pretty_print(msg: str = None, with printlock: print(Fore.WHITE + datetime.now().strftime(Style.DIM + "%H:%M:%S ") - + Style.BRIGHT + bg_color + " " + sender + " " - + Back.RESET + " " + fg_color + msg.strip()) + + Style.BRIGHT + bg_color + " " + sender + " " + + Back.RESET + " " + fg_color + msg.strip()) def share_print(id, type, accept, reject, total_hashrate, computetime, diff, ping, - back_color, reject_cause=None): + back_color, reject_cause=None, + printlock=printlock): """ Produces nicely formatted CLI output for shares: HH:MM:S |cpuN| ⛏ Accepted 0/0 (100%) ∙ 0.0s ∙ 0 kH/s ⚙ diff 0 k ∙ ping 0ms @@ -569,13 +587,33 @@ def share_print(id, type, total_hashrate = get_prefix("H/s", total_hashrate, 2) diff = get_prefix("", int(diff), 0) + def _blink_builtin(led="green"): + if led == "green": + os.system( + 'echo 1 | sudo tee /sys/class/leds/led0/brightness >/dev/null 2>&1') + sleep(0.1) + os.system( + 'echo 0 | sudo tee /sys/class/leds/led0/brightness >/dev/null 2>&1') + else: + os.system( + 'echo 1 | sudo tee /sys/class/leds/led1/brightness >/dev/null 2>&1') + sleep(0.1) + os.system( + 'echo 0 | sudo tee /sys/class/leds/led1/brightness >/dev/null 2>&1') + if type == "accept": + if running_on_rpi and user_settings["raspi_leds"] == "y": + _blink_builtin() share_str = get_string("accepted") fg_color = Fore.GREEN elif type == "block": + if running_on_rpi and user_settings["raspi_leds"] == "y": + _blink_builtin() share_str = get_string("block_found") fg_color = Fore.YELLOW else: + if running_on_rpi and user_settings["raspi_leds"] == "y": + _blink_builtin("red") share_str = get_string("rejected") if reject_cause: share_str += f"{Style.NORMAL}({reject_cause}) " @@ -618,12 +656,13 @@ def check_mining_key(user_settings): "https://server.duinocoin.com/mining_key" + "?u=" + user_settings["username"] + "&k=" + key, - timeout=10 + timeout=Settings.SOC_TIMEOUT ).json() - if response["success"] and not response["has_key"]: # if the user doesn't have a mining key + if response["success"] and not response["has_key"]: + # If user doesn't have a mining key + user_settings["mining_key"] = "None" - configparser["PC Miner"] = user_settings with open(Settings.DATA_DIR + Settings.SETTINGS_FILE, "w") as configfile: @@ -634,13 +673,11 @@ def check_mining_key(user_settings): if not response["success"]: if user_settings["mining_key"] == "None": - pretty_print( - get_string("mining_key_required"), - "warning" - ) - - mining_key = input("Enter your mining key: ") - user_settings["mining_key"] = b64.b64encode(mining_key.encode("utf-8")).decode('utf-8') + pretty_print(get_string("mining_key_required"), "warning") + mining_key = input("\t\t" + get_string("ask_mining_key") + + Style.BRIGHT + Fore.YELLOW) + user_settings["mining_key"] = b64.b64encode( + mining_key.encode("utf-8")).decode('utf-8') configparser["PC Miner"] = user_settings with open(Settings.DATA_DIR + Settings.SETTINGS_FILE, @@ -650,15 +687,12 @@ def check_mining_key(user_settings): sleep(1.5) check_mining_key(user_settings) else: - pretty_print( - get_string("invalid_mining_key"), - "error" - ) - - retry = input("You want to retry? (y/n): ") - if retry == "y" or retry == "Y": - mining_key = input("Enter your mining key: ") - user_settings["mining_key"] = b64.b64encode(mining_key.encode("utf-8")).decode('utf-8') + pretty_print(get_string("invalid_mining_key"), "error") + retry = input(get_string("key_retry")) + if not retry or retry == "y" or retry == "Y": + mining_key = input(get_string("ask_mining_key")) + user_settings["mining_key"] = b64.b64encode( + mining_key.encode("utf-8")).decode('utf-8') configparser["PC Miner"] = user_settings with open(Settings.DATA_DIR + Settings.SETTINGS_FILE, @@ -731,6 +765,11 @@ def greeting(): + Style.NORMAL + Fore.RESET + get_string("rig_identifier") + Style.BRIGHT + Fore.YELLOW + user_settings["identifier"]) + print(Style.DIM + Fore.YELLOW + Settings.BLOCK + + Style.NORMAL + Fore.RESET + get_string("using_config") + + Style.BRIGHT + Fore.YELLOW + + str(Settings.DATA_DIR + Settings.SETTINGS_FILE)) + print(Style.DIM + Fore.YELLOW + Settings.BLOCK + Style.NORMAL + Fore.RESET + str(greeting) + ", " + Style.BRIGHT + Fore.YELLOW @@ -750,7 +789,7 @@ def preload(): with open(Settings.DATA_DIR + Settings.TRANSLATIONS_FILE, "wb") as f: f.write(requests.get(Settings.TRANSLATIONS, - timeout=10).content) + timeout=Settings.SOC_TIMEOUT).content) with open(Settings.DATA_DIR + Settings.TRANSLATIONS_FILE, "r", encoding=Settings.ENCODING) as file: @@ -811,19 +850,29 @@ def load_cfg(): Loads miner settings file or starts the config tool """ if not Path(Settings.DATA_DIR + Settings.SETTINGS_FILE).is_file(): - print(get_string("basic_config_tool") + print(Style.BRIGHT + + get_string("basic_config_tool") + Settings.DATA_DIR + get_string("edit_config_file_warning") + "\n" + + Style.RESET_ALL + get_string("dont_have_account") + Fore.YELLOW + get_string("wallet") + Fore.RESET + get_string("register_warning")) - username = input(get_string("ask_username") + Style.BRIGHT) - if not username: - username = choice(["revox", "Bilaboz", "JoyBed", "Connor2"]) + correct_username = False + while not correct_username: + username = input(get_string("ask_username") + Style.BRIGHT) + if not username: + username = choice(["revox", "Bilaboz"]) + + r = requests.get(f"https://server.duinocoin.com/users/{username}", + timeout=Settings.SOC_TIMEOUT).json() + correct_username = r["success"] + if not correct_username: + print(get_string("incorrect_username")) mining_key = input(Style.RESET_ALL + get_string("ask_mining_key") + Style.BRIGHT) if not mining_key: @@ -851,11 +900,11 @@ def load_cfg(): if not threads: threads = cpu_count() - if int(threads) > 8: - threads = 8 - pretty_print( - Style.BRIGHT - + get_string("max_threads_notice")) + if int(threads) > 16: + threads = 16 + print(Style.BRIGHT + Fore.BLUE + + get_string("max_threads_notice") + + Style.RESET_ALL) elif int(threads) < 1: threads = 1 @@ -909,6 +958,7 @@ def load_cfg(): "language": lang, "soc_timeout": Settings.SOC_TIMEOUT, "report_sec": Settings.REPORT_TIME, + "raspi_leds": Settings.RASPI_LEDS, "discord_rp": "y"} with open(Settings.DATA_DIR + Settings.SETTINGS_FILE, @@ -935,7 +985,7 @@ def m_connect(id, pool): Client.send("MOTD") motd = Client.recv(512).replace("\n", "\n\t\t") - pretty_print("MOTD: " + Fore.RESET + Style.NORMAL + pretty_print(get_string("motd") + Fore.RESET + Style.NORMAL + str(motd), "success", "net" + str(id)) if float(POOL_VER) <= Settings.VER: @@ -966,7 +1016,8 @@ def mine(id: int, user_settings: list, blocks: int, pool: tuple, accept: int, reject: int, hashrate: list, - single_miner_id: str): + single_miner_id: str, + printlock): """ Main section that executes the functionalities from the sections above. """ @@ -1058,7 +1109,7 @@ def mine(id: int, user_settings: list, accept.value, reject.value, total_hashrate, computetime, job[2], ping, - back_color) + back_color, printlock) elif feedback[0] == "BLOCK": accept.value += 1 @@ -1067,7 +1118,7 @@ def mine(id: int, user_settings: list, accept.value, reject.value, total_hashrate, computetime, job[2], ping, - back_color) + back_color, printlock) elif feedback[0] == "BAD": reject.value += 1 @@ -1075,7 +1126,7 @@ def mine(id: int, user_settings: list, accept.value, reject.value, total_hashrate, computetime, job[2], ping, - back_color, feedback[1]) + back_color, feedback[1], printlock) if id == 0: end_time = time() @@ -1110,7 +1161,9 @@ def connect(): RPC.connect() Thread(target=Discord_rp.update).start() except Exception as e: - pretty_print(get_string("Error launching Discord RPC thread: " + str(e))) + pretty_print( + get_string("discord_launch_error" + + Style.NORMAL + Fore.RESET + " " + str(e))) def update(): @@ -1125,13 +1178,15 @@ def update(): large_image="ducol", large_text="Duino-Coin, " + "a coin that can be mined with almost everything" - + ", including AVR boards", - buttons=[{"label": "Visit duinocoin.com", + + ", including Arduino boards", + buttons=[{"label": "Learn more", "url": "https://duinocoin.com"}, - {"label": "Join the Discord", + {"label": "Join the Duino Discord", "url": "https://discord.gg/k48Ht5y"}]) except Exception as e: - pretty_print(get_string("Error updating Discord RPC thread: " + str(e))) + pretty_print( + get_string("discord_update_error" + + Style.NORMAL + Fore.RESET + " " + str(e))) sleep(15) @@ -1139,7 +1194,7 @@ class Fasthash: def init(): try: """ - Check wheter libducohash fasthash is available + Check whether libducohash fasthash is available to speed up the DUCOS1 work, created by @HGEpro """ import libducohasher @@ -1168,7 +1223,7 @@ def load(): pretty_print(get_string("fasthash_download"), "info") url = ('https://server.duinocoin.com/' + 'fasthash/libducohashWindows.pyd') - r = requests.get(url, timeout=10) + r = requests.get(url, timeout=Settings.SOC_TIMEOUT) with open(f"libducohasher.pyd", 'wb') as f: f.write(r.content) return @@ -1197,7 +1252,7 @@ def load(): return if not Path("libducohasher.so").is_file(): pretty_print(get_string("fasthash_download"), "info") - r = requests.get(url, timeout=10) + r = requests.get(url, timeout=Settings.SOC_TIMEOUT) with open("libducohasher.so", "wb") as f: f.write(r.content) return @@ -1238,6 +1293,25 @@ def load(): Fasthash.load() Fasthash.init() + + if user_settings["raspi_leds"] == "y": + try: + with io.open('/sys/firmware/devicetree/base/model', 'r') as m: + if 'raspberry pi' in m.read().lower(): + running_on_rpi = True + pretty_print( + get_string("running_on_rpi") + + Style.NORMAL + Fore.RESET + " " + + get_string("running_on_rpi2"), "success") + except: + running_on_rpi = False + + if running_on_rpi: + # Prepare onboard LEDs to be controlled + os.system( + 'echo gpio | sudo tee /sys/class/leds/led1/trigger >/dev/null 2>&1') + os.system( + 'echo gpio | sudo tee /sys/class/leds/led0/trigger >/dev/null 2>&1') try: check_mining_key(user_settings) @@ -1254,10 +1328,15 @@ def load(): single_miner_id = randint(0, 2811) threads = int(user_settings["threads"]) - if threads > 12: - threads = 12 + if threads > 16: + threads = 16 pretty_print(Style.BRIGHT + get_string("max_threads_notice")) + if threads > cpu_count(): + pretty_print(Style.BRIGHT + + get_string("system_threads_notice"), + "warning") + sleep(10) fastest_pool = Client.fetch_pool() @@ -1265,10 +1344,11 @@ def load(): p = Process(target=Miner.mine, args=[i, user_settings, blocks, fastest_pool, accept, reject, - hashrate, single_miner_id]) + hashrate, single_miner_id, + printlock]) p_list.append(p) p.start() - sleep(0.05) + sleep(0.5) if user_settings["discord_rp"] == 'y': Discord_rp.connect() diff --git a/README.md b/README.md index 750592e2..c325d55f 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ - + @@ -152,10 +152,10 @@ Server source code, documentation for API calls and official libraries for devel | Device/CPU/SBC/MCU/chip | Average hashrate
(all threads) | Mining
threads | Power
usage | Average
DUCO/day | |-----------------------------------------------------------|-----------------------------------|-------------------|----------------|---------------------| - | Arduino Pro Mini, Uno, Nano etc.
(Atmega 328p/pb/16u2) | 196 H/s | 1 | 0.2 W | 9-10 | + | Arduino Pro Mini, Uno, Nano etc.
(Atmega 328p/pb/16u2) | 258 H/s | 1 | 0.2 W | 10-13 | | Teensy 4.1 (soft cryptography) | 80 kH/s | 1 | 0.5 W | - | - | NodeMCU, Wemos D1 etc.
(ESP8266) | 10 kH/s (160MHz) 4.9 kH/s (80Mhz) | 1 | 0.6 W | 6-7 | - | ESP32 | 33 kH/s | 2 | 1 W | 8-9 | + | NodeMCU, Wemos D1 etc.
(ESP8266) | 9-10 kH/s (160MHz) 5 kH/s (80Mhz) | 1 | 0.6 W | 3-6 | + | ESP32 | 40-42 kH/s | 2 | 1 W | 6-9 | | Raspberry Pi Zero | 18 kH/s | 1 | 1.1 W | - | | Raspberry Pi 3 | 440 kH/s | 4 | 5.1 W | 4-5 | | Raspberry Pi 4 | 740 kH/s (32bit) | 4 | 6.4 W | 10 | @@ -175,7 +175,7 @@ Server source code, documentation for API calls and official libraries for devel | Intel Core i3-4130 | 1.45 MH/s | 4 | - | 3.7 | | AMD Ryzen 5 2600 | 4.9 MH/s | 12 | 67 W | 15.44 | - All tests were performed using the DUCO-S1 algorithm. This table will be actively updated. + All tests were performed using the DUCO-S1 algorithm **without fasthash accelerations**. This table will be actively updated. @@ -213,7 +213,6 @@ Server source code, documentation for API calls and official libraries for devel * [Teensy 4.1 code for Arduino IDE](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Teensy_code/Teensy_code.ino) by joaquinbvw ### Other tools: - * [Lua duino-coin](https://github.com/alberiolima/duino-coin) - Duino-Coin tools and miners in Lua by alberiolima * [Duino Miner](https://github.com/g7ltt/Duino-Miner) - Arduino Nano based DUCO miner files and documentation by g7ltt * [DUINO Mining Rig](https://repalmakershop.com/pages/duino-mining-rig) - 3D files, PCB designs and instructions for creating your own Duino rig by ReP_AL * [DuinoCoin-balance-Home-Assistant](https://github.com/NL647/DuinoCoin-balance-Home-Assistant) - addon for home assistant displaying your balance by NL647 @@ -262,7 +261,8 @@ Some third-party included files may have different licenses - please check their 18. Sending a lot of transactions in a short amount of time can trigger the Kolka system which will rate limit and/or block the user.
19. Community-made softwares need to comply with the rules (terms of service, difficulty tiers, etc.) - abusing the system will lead to blocking of the software and/or the user(s).
20. Accounts proven to be misleading in name or usage (impersonation, fake bots, etc.) are not allowed.
-21. Every Duino-Coin user agrees to comply with the above rules. Improper behavior will lead to blocking of the account.
+21. Sending an offensive and/or unrelated verification picture and/or description will lead to immediate blocking of the account. +22. Every Duino-Coin user agrees to comply with the above rules. Improper behavior will lead to blocking of the account.
## Privacy policy diff --git a/Resources/AVR_Miner_langs.json b/Resources/AVR_Miner_langs.json index 35325889..edc0e3b7 100644 --- a/Resources/AVR_Miner_langs.json +++ b/Resources/AVR_Miner_langs.json @@ -85,7 +85,11 @@ "updating": "The miner is outdated. Updating....", "ask_mining_key": "Enter your mining key (only required if you activated this option in the webwallet - press enter to skip): ", "mining_key_required": "Mining key is required to mine on this account", - "invalid_mining_key": "The mining key you provided is invalid!" + "invalid_mining_key": "The mining key you provided is invalid!", + "incorrect_username": "The username you provided doesn't exist!", + "system_threads_notice": "Warning: you're trying to use more threads than you have.\n\t\tThis will cause unintended side effects such as your system becoming unresponsive.\n\t\tStarting in 10s", + "using_config": "Config file: ", + "motd": "Server message of the day: " }, "indonesian": { "translation_autor": "rezafauzan945", @@ -416,8 +420,15 @@ "report_body5": "\n\t\t‖ Podczas tego czasu rozwiązałeś ", "report_body6": " hashy", "total_mining_time": "\n\t\t‖ Koparka działa przez: ", - "new_version": "A new version is available, you want to update miner [Y/n] ? ", - "updating": "The miner is outdated. Updating...." + "new_version": "Znalezino nową wersję, chcesz zaktualizować koparkę? [Y/n] ? ", + "updating": "Koparka jest nieaktualna, aktualizacja w trakcie....", + "ask_mining_key": "Wprowadź swoje hasło do kopania (mining key) (tylko jeżeli ustawiłeś je w portfelu internetowym - w przeciwnym razie wciśnij enter aby pominąć): ", + "mining_key_required": "Hasło do kopania jest wymagane do kopania na tym koncie", + "invalid_mining_key": "Podane hasło do kopania jest nieprawidłowe!", + "incorrect_username": "Podana nazwa użytkownika nie istnieje!", + "system_threads_notice": "Uwaga: próbujesz uruchomić więcej wątków niż twoje urządzenie fizycznie posiada.\n\t\tMoże to spowodować zawieszenie się systemu lub problemy z konsolą.\n\t\tUruchamiam koparkę za 10s", + "using_config": "Plik konfiguracyjny: ", + "motd": "Serwerowa wiadomość dnia: " }, "russian": { "translation_autor": "5Q", diff --git a/Resources/PC_Miner_langs.json b/Resources/PC_Miner_langs.json index a142848a..d3eeca25 100644 --- a/Resources/PC_Miner_langs.json +++ b/Resources/PC_Miner_langs.json @@ -13,8 +13,8 @@ "donation_level": "Developer donation level: ", "ask_algorithm": "Select mining algorithm you want to use (1-2): ", "ask_difficulty": "Select mining difficulty you want to use (1-3): ", - "low_diff": "Low difficulty (for Raspberry Pis, older computers)", - "medium_diff": "Medium difficulty (for typical computers)", + "low_diff": "Low difficulty (for less powerful Raspberry Pis (Zero/1/2/3) and older computers)", + "medium_diff": "Medium difficulty (for more powerful Raspberry Pis (4/400) and typical computers)", "net_diff": "Network difficulty (for powerful computers)", "low_diff_short": "Low diff", "medium_diff_short": "Medium diff", @@ -64,7 +64,7 @@ "mining_user": " User ", "mining_not_exist": " doesn't exist.", "mining_not_exist_warning": " Make sure you've entered the username correctly. Please check your config file. Retrying in 10s", - "max_threads_notice": "Mining Duino-Coin with a lot of threads will cause decrease in profit - mining threads decreased to 8", + "max_threads_notice": "Mining Duino-Coin with a lot of threads will cause decrease in profit - mining threads decreased to 16", "max_hashrate_notice": "Mining Duino-Coin with powerful equipment may not be very profitable for you - we suggest trying Coin Magi (https://xmg.network) - our 'sister' coin", "recommended": "recommended", "connection_search": "Searching for the fastest node to connect to", @@ -89,11 +89,20 @@ "node_picker_unavailable": "Node picker doesn't seem to be responding properly - retrying in ", "node_picker_error": "Fatal error fetching server from the node picker - retrying in ", "connecting_node": " Retrieved mining node: ", - "new_version": "A new version is available, you want to update miner [Y/n] ? ", + "new_version": "A new version is available, you want to update miner (Y/n) ? ", "updating": "The miner is outdated. Updating....", "ask_mining_key": "Enter your mining key (only required if you activated this option in the webwallet - press enter to skip): ", "mining_key_required": "Mining key is required to mine on this account", - "invalid_mining_key": "The mining key you provided is invalid!" + "invalid_mining_key": "The mining key you provided is invalid!", + "running_on_rpi": "The miner seems to be running on a Raspberry Pi.", + "running_on_rpi2": "Onboard status LEDs will light up accordingly to the mining process status", + "discord_launch_error": "Error launching Discord RPC thread:", + "discord_update_error": "Error updating Discord RPC statistics:", + "key_retry": "Do you want to retry? (Y/n): ", + "incorrect_username": "The username you provided doesn't exist!", + "system_threads_notice": "Warning: you're trying to use more threads than you have.\n\t\tThis will cause unintended side effects such as your system becoming unresponsive.\n\t\tStarting in 10s", + "using_config": "Config file: ", + "motd": "Server message of the day: " }, "indonesian": { "translation_autor": "rezafauzan945", @@ -160,7 +169,7 @@ "mining_user": " User ", "mining_not_exist": " tidak ada.", "mining_not_exist_warning": " Pastikan anda memasukan username dengan benar. Silahkan periksa file konfigurasi anda. Mencoba lagi dalam 10detik", - "max_threads_notice": "Menambang Duino-Coin dengan banyak thread akan menyebabkan berkurangnya keuntungan(profit) - mining threads dikurangi ke 8", + "max_threads_notice": "Menambang Duino-Coin dengan banyak thread akan menyebabkan berkurangnya keuntungan(profit) - mining threads dikurangi ke 16", "max_hashrate_notice": "Menambang Duino-Coin dengan peralatan berkekuatan tinggi(spek tinggi) mungkin sangat tidak menguntungkan untuk anda - kami sarankan untuk mencoba Coin Magi (https://xmg.network) - 'sister' coin kami", "recommended": "direkomendasikan", "connection_search": "Mencari node tercepat untuk disambungkan", @@ -256,7 +265,7 @@ "mining_user": " 사용자 ", "mining_not_exist": " 존재하지 않습니다.", "mining_not_exist_warning": " 사용자 이름을 올바르게 입력하였는지 확인하세요. config 파일을 확인하세요. 10초 내로 재시작할게요", - "max_threads_notice": "Duino-Coin 채굴에 너무 많은 쓰레드를 사용하면 오히려 불이익이 발생할 수 있어요 - 채굴 쓰레드의 갯수를 8로 낮춥니다", + "max_threads_notice": "Duino-Coin 채굴에 너무 많은 쓰레드를 사용하면 오히려 불이익이 발생할 수 있어요 - 채굴 쓰레드의 갯수를 16로 낮춥니다", "max_hashrate_notice": "Duino-Coin 채굴 시 과도하게 좋은 장비를 사용하실 필요는 없어요 - Coin Magi (https://xmg.network)를 사용하는 것을 추천드려요 - 자매 코인입니다", "recommended": "추천", "connection_search": "가장 연결이 빠른 노드를 탐색 중이에요", @@ -347,7 +356,7 @@ "mining_user": " کاربر نام", "mining_not_exist": " وجود ندارد", "mining_not_exist_warning": " مطمئن شوید که نام کاربری را به درستی وارد کرده اید. لطفاً فایل پیکربندی خود را بررسی کنید. دوباره در 10 ثانیه تلاش می کنید ", - "max_threads_notice": " استخراج سکه دوقلو با تعداد زیادی نخ باعث کاهش سود می شود - رشته های استخراج به 8 کاهش می یابد ", + "max_threads_notice": " استخراج سکه دوقلو با تعداد زیادی نخ باعث کاهش سود می شود - رشته های استخراج به 16 کاهش می یابد ", "max_hashrate_notice": " استخراج معادن دوقلو با تجهیزات قدرتمند ممکن است برای شما چندان سودآور نباشد - پیشنهاد می کنیم Coin Magi (https://xmg.network) - سکه خواهر ما را امتحان کنید ", "recommended": " توصیه می شود ", "connection_search": " جستجوی سریعترین گره برای اتصال ", @@ -438,7 +447,7 @@ "mining_user": " Použivateľ ", "mining_not_exist": " neexistuje.", "mining_not_exist_warning": " uistite sa, že ste správne zadali používateľské meno. Skontrolujte svoj konfiguračný súbor. Opätovný pokus o 10 s", - "max_threads_notice": "Ťažba Duino-Coinu s množstvom vlákien spôsobí pokles zisku - ťažba vlákien klesla na 8", + "max_threads_notice": "Ťažba Duino-Coinu s množstvom vlákien spôsobí pokles zisku - ťažba vlákien klesla na 16", "max_hashrate_notice": "Ťažba Duino-Coinu s výkonným vybavením pre vás nemusí byť veľmi zisková – odporúčame vyskúšať Coin Magi (https://xmg.network) – našu „sesterskú“ mincu", "recommended": "odporúčané", "connection_search": "Hľadá sa najrýchlejší node na pripojenie", @@ -529,7 +538,7 @@ "mining_user": " Utente ", "mining_not_exist": " non esiste.", "mining_not_exist_warning": " Assicurati di aver inserito il nome utente correttamente. Per favore controlla il tuo file di configurazione. Nuovo tentativo in 10s", - "max_threads_notice": "Minare Duino-Coin con un sacco di thread causerà un peggioramento del profitto - thread di mining diminuiti a 8", + "max_threads_notice": "Minare Duino-Coin con un sacco di thread causerà un peggioramento del profitto - thread di mining diminuiti a 16", "max_hashrate_notice": "Minare Duino-Coin con un equipaggiamento potente potrebbe non essere molto profittevole per te - suggeriamo di provare Coin Magi (https://xmg.network) - la nostra moneta \"sorella\"", "recommended": "raccomandato", "new_version": "A new version is available, you want to update miner [Y/n] ? ", @@ -603,7 +612,7 @@ "mining_user": " Użytkownik ", "mining_not_exist": " nie jest zarejestrowany.", "mining_not_exist_warning": " Upewnij się że poprawnie wprowadziłeś nazwę użytkownika. Sprawdź swój plik konfiguracyjny. Ponowna próba za 10s", - "max_threads_notice": "Kopanie Duino-Coin z wysoką ilością wątków spowoduje spadek w zyskach - zmniejszono liczbę wątków do 8", + "max_threads_notice": "Kopanie Duino-Coin z wysoką ilością wątków spowoduje spadek w zyskach - zmniejszono liczbę wątków do 16", "max_hashrate_notice": "Kopanie Duino-Coin używając mocnego komputera może nie być bardzo opłacalne - proponujemy wpróbować Coin Magi (https://xmg.network) - naszą 'siostrzaną' monetę", "recommended": "zalecana opcja", "connection_search": "Szukanie najszybszego serwera", @@ -628,11 +637,15 @@ "node_picker_unavailable": "Menedżer do wyboru serwerów nie odpowiada - ponowna próba za ", "node_picker_error": "Błąd przy wyborze serwera - ponowna próba za ", "connecting_node": " Wybrano najszybszy serwer: ", - "new_version": "A new version is available, you want to update miner [Y/n] ? ", - "updating": "The miner is outdated. Updating....", - "ask_mining_key": "Enter your mining key (only required if you activated this option in the webwallet - press enter to skip): ", - "mining_key_required": "Mining key is required to mine on this account", - "invalid_mining_key": "The mining key you provided is invalid!" + "new_version": "Znalezino nową wersję, chcesz zaktualizować koparkę? [Y/n] ? ", + "updating": "Koparka jest nieaktualna, aktualizacja w trakcie....", + "ask_mining_key": "Wprowadź swoje hasło do kopania (mining key) (tylko jeżeli ustawiłeś je w portfelu internetowym - w przeciwnym razie wciśnij enter aby pominąć): ", + "mining_key_required": "Hasło do kopania jest wymagane do kopania na tym koncie", + "invalid_mining_key": "Podane hasło do kopania jest nieprawidłowe!", + "incorrect_username": "Podana nazwa użytkownika nie istnieje!", + "system_threads_notice": "Uwaga: próbujesz uruchomić więcej wątków niż twoje urządzenie fizycznie posiada.\n\t\tMoże to spowodować zawieszenie się systemu lub problemy z konsolą.\n\t\tUruchamiam koparkę za 10s", + "using_config": "Plik konfiguracyjny: ", + "motd": "Serwerowa wiadomość dnia: " }, "spanish": { "translation_autor": "HGEpro", @@ -932,7 +945,7 @@ "mining_user": " Користувач ", "mining_not_exist": " не існує.", "mining_not_exist_warning": " Переконайтеся, що ви правильно ввели ім'я користувача. Будь-ласка, перевірте ваш файл налаштувань. Спробуємо ще раз через 10с", - "max_threads_notice": "Майнінг Duino-Coin з великою кількістю потоків призведе до зниження прибутку - Кількість потоків зменьшено до 8", + "max_threads_notice": "Майнінг Duino-Coin з великою кількістю потоків призведе до зниження прибутку - Кількість потоків зменьшено до 16", "max_hashrate_notice": "Майнінг Duino-Coin з потужним обладнанням може бути не дуже вигідним для вас - ми пропонуємо спробувати Coin Magi (https://xmg.network) - наша 'сестринська' монета", "recommended": "рекомендовано", "connection_search": "Пошук найшвидшого вузла для підключення", @@ -976,8 +989,8 @@ "banner": "Ofizieller Duino-Coin © Python Miner", "donation_level": "Entwickler-Spendenlevel: ", "ask_difficulty": "Bitte wähle die Schürfschwierigkeit aus, die du benutzen willst (1-3): ", - "low_diff": "Niedrige Schwierigkeit (für Raspberry Pis oder ältere Computer", - "medium_diff": "Mittlere Schwierigkeit (für normale Computer)", + "low_diff": "Niedrige Schwierigkeit (für leistungsarme Raspberry Pis (Zero/1/2/3) und ältere Computer)", + "medium_diff": "Mittlere Schwierigkeit (für leistungsstarke Raspberry Pis (4/400) und normale Computer)", "net_diff": "Netzwerkgesteurte Schwierigkeit (für leistungsstarke Computer)", "low_diff_short": "Niedrige Schw.", "medium_diff_short": "Mittlere Schw.", @@ -1241,7 +1254,7 @@ "mining_user": " User ", "mining_not_exist": " não existe", "mining_not_exist_warning": " Usuario incorreto, confira-o. Tentando novamente em 10s", - "max_threads_notice": "Minerar Duino-Coin com muitos núcleos(threads) causará queda na produtividade(lucro) - núcleos de mineração reduzido para 8", + "max_threads_notice": "Minerar Duino-Coin com muitos núcleos(threads) causará queda na produtividade(lucro) - núcleos de mineração reduzido para 16", "max_hashrate_notice": "Minerar Duino-Coin com equipamentos poderosos pode não ser muito lucrativo para você - sugerimos tentar a Coin Magi (https://xmg.network) - ou 'sister' coin", "recommended": "recomendado", "connection_search": "Procurando o servidor/nó mais rápido para se conectar", @@ -1399,7 +1412,7 @@ "mining_user": " ผู้ใช้ ", "mining_not_exist": " ไม่มีอยู่", "mining_not_exist_warning": " ตรวจสอบความถูกต้องของชื่อผู้ใช้งาน กรุณาตรวจสอบไฟล์การตั้งค่า ลองใหม่ใน 10วิ", - "max_threads_notice": "การขุด Duino-Coin ด้วยเธรดจำนวนมากจะทำให้กำไรลดลง - เธรดการขุดลดเหลือ 8", + "max_threads_notice": "การขุด Duino-Coin ด้วยเธรดจำนวนมากจะทำให้กำไรลดลง - เธรดการขุดลดเหลือ 16", "max_hashrate_notice": "การขุด Duino-Coin ด้วยอุปกรณ์ที่มีพลังสูงอาจจะไม่ได้ทำให้คุณได้กำไรสูงสุด- เราแนะนำให้ลอง Magi (https://xmg.network) - เหรียญ 'พี่น้อง' ของเรา", "recommended": "แนะนำ", "connection_search": "กำลังค้นหาโนดที่เร็วที่สุดเพื่อเชื่อมต่อ", @@ -1490,7 +1503,7 @@ "mining_user": " उपयोगकर्ता ", "mining_not_exist": " मौजूद नहीं है.", "mining_not_exist_warning": " सुनिश्चित करें कि आपने उपयोगकर्ता नाम सही ढंग से दर्ज किया है। कृपया अपनी कॉन्फ़िगरेशन फ़ाइल जांचें। 10s . में पुन: प्रयास करना", - "max_threads_notice": "बहुत सारे धागे के साथ खनन डुइनो-सिक्का से लाभ में कमी आएगी - खनन धागे घटकर 8 . हो गए", + "max_threads_notice": "बहुत सारे धागे के साथ खनन डुइनो-सिक्का से लाभ में कमी आएगी - खनन धागे घटकर 16 . हो गए", "max_hashrate_notice": "शक्तिशाली उपकरणों के साथ डुइनो-सिक्का खनन आपके लिए बहुत लाभदायक नहीं हो सकता है - हमारा सुझाव है कि सिक्का मैगी (https://xmg.network) - हमारे मित्र सिक्का को आजमाएं", "recommended": "अनुशंसित", "connection_search": "कनेक्ट करने के लिए सबसे तेज़ नोड की खोज", @@ -1586,7 +1599,7 @@ "mining_user": " Uživatel ", "mining_not_exist": " neexistuje.", "mining_not_exist_warning": " Ujisti se, že jsi zadal uživatelské jméno správně. Zkontroluj prosím soubor konfigurace. Zkusím to znovu za 10s", - "max_threads_notice": "Těžba Duino-Coinu na příliš mnoho vláknech snižuje tvůj profit - snižuji počet vláken na 8", + "max_threads_notice": "Těžba Duino-Coinu na příliš mnoho vláknech snižuje tvůj profit - snižuji počet vláken na 16", "max_hashrate_notice": "Těžba Duino-Coinu na takto výkonném zařízení pro tebe nemusí být výdělečná - doporučujeme zkusit Coin Magi (https://xmg.network) - naši 'sesterskou' minci", "recommended": "doporučené", "connection_search": "Hledám nejrychlejší uzel k připojení", diff --git a/Resources/README_TRANSLATIONS/README_de_DE.md b/Resources/README_TRANSLATIONS/README_de_DE.md index ff38dfee..6d365099 100644 --- a/Resources/README_TRANSLATIONS/README_de_DE.md +++ b/Resources/README_TRANSLATIONS/README_de_DE.md @@ -1,253 +1,295 @@ - -

+ + + + +

- + -
+
- - + - - + - - + - - -
- - - - - - -
- - - - - - -

- -

Duino-Coin ist eine Kryptowährung, die zum Beispiel auf Arduinos, ESP boards, Raspberry Pis, Computern, und mehr gemint werden kann

-

inklusive Wi-Fi Router, SmartTV's, Smartphones, Smartwatches, SBCs, MCUs, GPUs - eigentlich alles das einen kleinen Programmierbaren Microchip hat.!


- - - - - - - - - - -
Besonderheiten:Technische Spezifikationen
- 💻 Von vielen Betriebssystemen unterstützt
- 👥 freundliche & wachsende Community
- 💱 Einfach zu nutzten & in andere Währungen umzutauschen
- 🌎 Überall verfügbar
- :new: Komplett originales Projekt
- :blush: Anfänger freundlich
- 💰 Kosten-Effektiv
- ⛏️ Einfach zu minen
- 📚 Open-source
-
- ♾️ Coin supply: Unendlich (vor Dezember 2020: 350k coins)
- 😎 Prämie: <5k blöcke(<500 coins)
- ⚡ Transaktionszeit: sofort
- 🔢 Dezimalstellen: bis zu 20
- 🔤 Ticker: DUCO (ᕲ)
- ⚒️ Algorithmen: DUCO-S1, DUCO-S1A, XXHASH + mehr geplannt
- ♐ Rewards: unterstützt durch das "Kolka System", welches hilft, miner fair zu belohnen
-
- -

Get started


- -Offiziele Anleitungen um einen ACccount zu erstellen, und auf vielen Geräten zu minen, auf der offizielen Website.
-Ein FAQ und Hilfe kann in der Wiki-Seite gefunden werden [Wikis](https://github.com/revoxhere/duino-coin/wiki). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-| Offiziele Wallets | Offiziele Miner | -:-----------------:|:----------------: -[](https://duinocoin.com/getting-started#register) | [](https://duinocoin.com/getting-started#computer) +

+ Duino-Coin ist eine Kryptowährung, die sich auf Arduinos, ESP8266/32 Boards, Raspberry Pis, Computern und vielen anderen Geräten minen lässt, wie beispielsweise W-LAN Routern, SmartTVs, Smartphones, Smartwatches, SBCs, MCUs und sogar GPUs! +

-

Duino-Coin Installieren


-Der einfachste Weg zu starten, ist [das neuste release](https://github.com/revoxhere/duino-coin/releases/latest) für dein OS herunterzuladen.
-
Wenn der Download fertig ist, Entpacke ihn und öffnen dein gewünschtes Programm. Es sind keine anderen Programme nötig.
+| Eigenschaften | Technische Spezifikationen | (Einige der vielen) unterstützten Boards | +|-|-|-| +| 💻 Von zahlreichen Platformen unterstützt
👥 Eine schnell wachsende Community
💱 Einfach zu benutzen und zu tauschen (zum Beispiel beim DUCO Exchange, Node-S, JustSwap oder SushiSwap)
🌎 Überall verfügbar
:new: Komplett einzigartiges und zudem quelloffenes Projekt
🌳 Anfänger- und umweltfreundlich
💰 Kosteneffektiv und einfach zu minen | ⚒️ Algorithmus: DUCO-S1
♐ Belohnungen: Nach dem "Kolka system", welches Miner fair belohnen soll
⚡ Transaktionszeit: Sofort
🪙 Supply: Unendlich (mit Burning)
🔤 Ticker: DUCO (ᕲ)
🔢 Nachkommastellen: bis zu 20 | ♾️ Arduinos
(Uno, Nano, Mega, Due, Pro Mini, etc.)
📶 ESP8266s
(NodeMCU, Wemos, etc.)
📶 ESP32s
(ESP-WROOM, ESP32-CAM, etc.)
🍓 Raspberry Pis
(1, 2, Zero (W/WH), 3, 4, Pico, 400)
🍊 Orange Pis
(Zero, Zero 2, PC, Plus, etc.)
⚡ Teensy 4.1 Boards | + + +## Loslegen + +#### Der einfachste Weg um mit Duino-Coin loszulegen, ist die [neueste Version](https://github.com/revoxhere/duino-coin/releases/latest) für das entsprechende Betriebssystem herunterzuladen.
+Nachdem diese heruntergeladen wurde, kann das Programm einfach entpackt und ausgeführt werden.
+Die Installation von Abhängigkeiten ist nicht notwendig. + +Für weitere Hilfe gibt es einen offiziellen Ratgeber in englischer Sprache auf der offiziellen Internetseite.
+Ein FAQ und nützliche Tips zur Problembehandlung gibt es (ebenfalls auf Englisch) in den [Wikis](https://github.com/revoxhere/duino-coin/wiki).
-
- Wenn du die Programme dierekt über Python starten willst, musst du vielleicht einige zusätzliche pip-module installieren. So kann man es auf Debian-basierenden Linux distros (z.B. Ubuntu, Debian oder Raspian) machen: +### Manuelle Installation + +#### Linux + ```BASH -sudo apt install python3 python3-pip git -git clone https://github.com/revoxhere/duino-coin +sudo apt update +sudo apt install python3 python3-pip git python3-pil python3-pil.imagetk -y # Install dependencies +git clone https://github.com/revoxhere/duino-coin # Clone Duino-Coin repository cd duino-coin -python3 -m pip install -r requirements.txt +python3 -m pip install -r requirements.txt # Install pip dependencies ``` -Wenn du Windows nutzt, musst du [Python 3](https://www.python.org/downloads/) herunterladen, das [Master Repository](https://github.com/revoxhere/duino-coin/archive/master.zip), dieses dann Entpacken (WinRar, 7zip) Danach kannst du ein CMD Fester öffnen (Windows + R Taste). -Im CMD Fenster, Schreibe/kopiere dies hinein: -```BASH -py -m pip install -r requirements.txt -``` -Wichtig für Windows nutzer: Immer sicher gehen das [Python 3](https://www.python.org/downloads/) und Python3-pip installiert und im PATH sind. +Anschließend kann das Programm gestartet werden (mit dem Befehl `python3 PC_Miner.py`). -Jetzt kannst du den Miner starten. (z.b. `python3 PC_Miner.py` oder `py PC_Miner.py`). +#### Windows -
+1. Installiere zuerst [Python 3](https://www.python.org/downloads/) (und stelle sicher Python als auch Pip deinem PATH hinzuzufügen). +2. Lade [die Duino-Coin Repository](https://github.com/revoxhere/duino-coin/archive/master.zip) herunter. +3. Extrahiere das zuvor heruntergeladene .zip Archiv und öffne den Ordner in einer Eingabeaufforderung. +4. Führe den Befehl `py -m pip install -r requirements.txt` aus, um die erforderlichen Abhängigkeiten mit Pip zu installieren. + +Anschließend kann das Programm gestartet werden (einfach einen Doppelklick auf die gewünschte `.py` Datei machen oder den Befehl `py PC_Miner.py` in der Eingabeaufforderung ausführen). -Du kannst das ganze Duino-Coin Paket auch mit AUR laden - dazu einfach ein Ladevorgang starten mit deinem Favorisierten AUR Helfer Programm: +### Automatische Installation + +#### Raspberry Pi + +Hinweis: Wenn dieser Script nicht funktionieren sollte, einfach auf die manuelle Installation zurückgreifen. ```BASH -sudo pacman -S yay -yay -S duino-coin +# Lade die Skript-Datei herunter +wget https://raw.githubusercontent.com/revoxhere/duino-coin/master/Tools/duco-install-rpi.sh + +# Lege die nötigen Berechtigungen fest +sudo chmod a+x duco-install-rpi.sh + +# Führe den Skript aus +./duco-install-rpi.sh ``` -das Duino-Coin AUR Paket wird bereitgestellt von [PhereloHD](https://github.com/PhereloHD). -

-

Von der Community erstellte Software von Talentierten Mitgliedern


- -**Andere Miner-/Software/Hardware/Chips die bekannt sind das Duino-Coin damit Funktioniert:** -* [duino-coin-kodi](https://github.com/SandUhrGucker/duino-coin-kodi) - Mining addon for Kodi Media Center by SandUhrGucker -* [MineCryptoOnWifiRouter](https://github.com/BastelPichi/MineCryptoOnWifiRouter) - Python Script für das Mining von Duino-Coin auf Routern by BastelPichi -* [Duino-Coin_Android_Cluster Miner](https://github.com/DoctorEenot/DuinoCoin_android_cluster) - Mining mit weniger Bandbreite für Android Handy by DoctorEenot -* [ESPython DUCO Miner](https://github.com/fabiopolancoe/ESPython-DUCO-Miner) - MicroPython Miner / ESP Boards by fabiopolancoe -* [DUCO Miner für Nintendo 3DS](https://github.com/BunkerInnovations/duco-3ds) - Python Miner für Nintendo 3DS by PhereloHD & HGEpro -* [Dockerized DUCO Miner](https://github.com/Alicia426/Dockerized_DUCO_Miner_minimal) - Miner in Docker (Linux/ARM) by Alicia426 -* [nonceMiner](https://github.com/colonelwatch/nonceMiner) - Schneller Duino-Coin Miner by colonelwatch -* [NodeJS-DuinoCoin-Miner](https://github.com/DarkThinking/NodeJS-DuinoCoin-Miner/) - Einfach NodeJS Miner by DarkThinking -* [d-cpuminer](https://github.com/phantom32-0/d-cpuminer) - Pure C Miner by phantom32 -* [Go Miner](https://github.com/yippiez/go-miner) by yippiez -* [ducominer](https://github.com/its5Q/ducominer) by its5Q -* [Unofficial miners directory](https://github.com/revoxhere/duino-coin/tree/master/Unofficial%20miners) - * [Julia Miner](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Julia_Miner.jl) by revox - * [Ruby Miner](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Ruby_Miner.rb) by revox - * [Minimal Python Miner (DUCO-S1)](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Minimal_PC_Miner.py) by revox - * [Minimal Python Miner (XXHASH)](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Minimal_PC_Miner_XXHASH.py) by revox - * [Teensy 4.1 code for Arduino IDE](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Teensy_code/Teensy_code.ino) by joaquinbvw - - -**Other tools:** -* [Duino-Coin Mining Dashboard](https://lulaschkas.github.io/duco-mining-dashboard/) Dashboard und Problembeseitigungs Hilfe by Lulaschkas -* [duco-miners](https://github.com/dansinclair25/duco-miners) CLI Mining Dashboard by dansinclair25 -* [Duco-Coin Symbol Icon ttf](https://github.com/SandUhrGucker/Duco-Coin-Symbol-Icon-ttf-.h) by SandUhrGucker -* [DUCO Browser Extension](https://github.com/LDarki/DucoExtension) Für Chrome by LDarki -* [DUCO Monitor](https://siunus.github.io/duco-monitor/) Account Statistiken by siunus -* [duino-tools](https://github.com/kyngs/duino-tools) by kyngs -* [Duino Stats](https://github.com/Bilaboz/duino-stats) DUINO-COIN Discord Bot by Bilaboz - - -Diese Liste wird ständig geupdatet. Wenn auch du deine Software hier auflisten möchtest die zum Projekt beiträgt, einfach einen Pull request auf Github erstellen, oder einen der Programmierer auf Discord anschreiben. -

-

wDUCO Tutorial


- -Duino-Coin ist eine Hybridwährung, was bedeutet, dass sie in wDUCO umgewandelt werden kann, wo DUCO im [Tron-Netzwerk](https://tron.network) (als Token) verpackt ist. Derzeit gibt es nicht viele Verwendungszwecke dafür, außer nur Geld in einer externen Wallet zu speichern oder wDUCO auf JustSwap gegen einen anderen Token auszutauschen. -Ein Tutorial zur Verwendung von wDUCO ist in der [wDUCO-Wiki](https://github.com/revoxhere/duino-coin/wiki/wDUCO-tutorial) verfügbar. -

- -

Entwicklung


- -Beiträge machen die Open-Source-Community zu einem großartigen Ort zum Lernen, Inspirieren und Gestalten. -Jeder Beitrag, den Sie zum Duino-Coin-Projekt leisten, wird sehr geschätzt. - -Wie kann man helfen? - -* erstelle eine Fork für das Projekt -* Erstellen Sie Ihren Feature-Zweig -* Sende deine Änderungen ein -* Stellen Sie sicher, dass alles wie vorgesehen funktioniert -* Öffnen Sie eine Pull-Anfrage - -Server-Quellcode, Dokumentation für API-Aufrufe und offizielle Bibliotheken zur Entwicklung eigener Apps für Duino-Coin sind im Zweig [nützliche Tools](https://github.com/revoxhere/duino-coin/tree/useful-tools) verfügbar . - -

Einige der offiziell geprüften Geräte mit (DUCO-S1)


- -| Gerät/CPU/SBC/MCU/Chip | durchschnittliche Hashrate
(all threads) | Mining
threads | Strom
verbrauch | Durchschnittliche
DUCO/Tag | -|-----------------------------------------------------------|-----------------------------------|-------------------|----------------|---------------------| -| Arduino Pro Mini, Uno, Nano etc.
(Atmega 328p/pb/16u2) | 170 H/s | 1 | 0.2 W | 15-20 | -| Teensy 4.1 | 12.8 kH/s | 1 | - | - | -| NodeMCU, Wemos D1 etc.
(ESP8266) | 9.3 kH/s | 1 | 0.6 W | 6-8 | -| ESP32 | 27 kH/s | 2 | 1.25 W | - | -| Raspberry Pi Zero | 17 kH/s | 1 | 0.7 W | - | -| Raspberry Pi 3 | 440 kH/s | 4 | 5.1 W | - | -| Raspberry Pi 4 | 1.3 MH/s | 4 | 6.4 W | - | -| Atomic Pi | 690 kH/s | 4 | 6 W | - | -| Orange Pi Zero 2 | 740 kH/s | 4 | 2.55 W | - | -| Khadas Vim 2 Pro | 1.12 MH/s | 8 | 6.2 W | - | -| Libre Computers Tritium H5CC | 480 kH/s | 4 | 5 W | - | -| Libre Computers Le Potato | 410 kH/s | 4 | 5 W | - | -| Pine64 ROCK64 | 640 kH/s | 4 | 5 W | - | -| Intel Celeron G1840 | 1.25 MH/s | 2 | - | 5-6 | -| Intel Core i5-2430M | 1.18 MH/s | 4 | - | 6.5 | -| Intel Core i5-3230M | 1.48 MH/s | 4 | - | 6.1 | -| Intel Core i5-5350U | 1.35 MH/s | 4 | - | 6.0 | -| Intel Core i5-7200U | 1.62 MH/s | 4 | - | 7.5 | -| Intel Core i5-8300H | 3.67 MH/s | 8 | - | 9.1 | -| Intel Core i3-4130 | 1.45 MH/s | 4 | - | - | - -

-

Lizenz


- -Duino-Coin wird hauptsächlich unter der MIT-Lizenz vertrieben. Weitere Informationen finden Sie in der Datei `LICENSE`. -Einige von Drittanbietern enthaltene Dateien können unterschiedliche Lizenzen haben - überprüfen Sie bitte deren `LICENSE`-Anweisungen (normalerweise oben in den Quellcodedateien).

- -

Nutzungsbedingungen


-1. Duino-Coins ("DUCOs") werden von Minern mit einem Prozess namens Mining verdient.
-2. Mining wird mit dem DUCO-S1-Algorithmus beschrieben (erklärt in der Duino-Coin Whitepaper), in dem das Finden eines korrekten Ergebnisses für ein mathematisches Problem dem Miner eine Belohnung gibt.
-3. Mining kann offiziell mit CPUs, AVR Boards (zB Arduino Boards), Single Board Computern (zB Raspberry Pi Boards), ESP32/8266 Boards unter Einsatz von offiziellen Minern durchgeführt werden (andere offiziell erlaubte Miner werden im oberen Teil beschrieben von README).
-4. Das Mining auf GPUs, FPGAs und anderer hocheffizienter Hardware ist erlaubt, jedoch nur mit der Mining-Schwierigkeit `EXTREME`.
-5. Alle Benutzer, die Miner auf einem für ihre Hardware nicht geeigneten Schwierigkeitsgrad verwenden (siehe die Schwierigkeitsliste) wird automatisch gedrosselt und/oder gesperrt.
-6. Alle Benutzer, die entdeckt werden, mit unangemessener und/oder nicht geeignete Hardware verwenden, werden ohne vorherige Ankündigung manuell oder automatisch aus dem Netzwerk gesperrt.
-7. Beim Bannen wird der Benutzer daran gehindert, auf seine Coins zuzugreifen, zusammen mit der Entfernung eines Kontos.
-8. Nur legal verdiente Coins können umgetauscht werden.
-9. Benutzer, die mit böswilligen Absichten (z. B. beim Umgehen von Beschränkungen) entdeckt werden, die ein VPN (oder ähnliches) verwenden, können ohne vorherige Ankündigung gesperrt werden.
-10. Mehrere Konten, die verwendet werden, um Limits zu umgehen, können ohne vorherige Ankündigung gesperrt werden.
-11. Konten können vorübergehend gesperrt werden, um Verstöße gegen die ToS ("Untersuchungen") ("Verstoß" oder "Missbrauch") zu untersuchen.
-12. Mehrere Konten, die verwendet werden, um Sperren zu umgehen, werden ohne vorherige Ankündigung gesperrt.
-13. Eine Umtauschanfrage an die offizielle DUCO-Börse ("die offizielle Börse") kann während der Nachforschungen verzögert und/oder abgelehnt werden.
-14. Umtauschanfragen an die offizielle Börse können aufgrund von ToS-Verstößen und/oder geringer Finanzierung abgelehnt werden.
-15. Die DUCOs eines Benutzers können verbrannt werden, wenn ein Verstoß nachgewiesen werden kann.
-16. Diese Nutzungsbedingungen können jederzeit ohne vorherige Ankündigung geändert werden.
-17. Jeder Nutzer, der Duino-Coin verwendet, erklärt sich damit einverstanden, die oben genannten Regeln einzuhalten.

-

Datenschutz-Bestimmungen


-1. Auf dem Masterserver speichern wir nur Benutzernamen, gehashte Passwörter (mit Hilfe von bcrypt) und E-Mails der Benutzer als Kontodaten.
-2. E-Mails sind nicht öffentlich zugänglich und werden nur verwendet, um den Benutzer bei Bedarf zu kontaktieren und den Austausch auf der DUCO-Exchange zu bestätigen und ein gelegentlicher Newsletter (für die Zukunft geplant).
-3. Wallet Guthaben, Transaktionen und Mining Daten sind in den öffentlichen JSON-API's öffentlich verfügbar.
-4. Die Datenschutzerklärung kann in Zukunft nach vorheriger Ankündigung geändert werden.


- -

Entwickler


- -* **Entwickler:** - * [@revox](https://github.com/revoxhere/) (Gründer/Leitender Entwickler) - robik123.345@gmail.com - * [@Bilaboz](https://github.com/bilaboz/) (Leitender Entwickler) - * [@connorhess](https://github.com/connorhess) (Leitender Entwickler) - * [@JoyBed](https://github.com/JoyBed) (Leitender Entwickler) - * [@LDarki](https://github.com/LDarki) (Web Entwickler) - * [@travelmode](https://github.com/colonelwatch) (Entwickler) - * [@ygboucherk](https://github.com/ygboucherk) ([wDUCO](https://github.com/ygboucherk/wrapped-duino-coin-v2) Entwickler) - * [@Tech1k](https://github.com/Tech1k/) - kristian@beyondcoin.io (Leitender Webmaster and DUCO Entwickler)

- -* **Mitwirkende:** - * [@5Q](https://github.com/its5Q) - * [@kyngs](https://github.com/kyngs) - * [@httsmvkcom](https://github.com/httsmvkcom) - * [@Nosh-Ware](https://github.com/Nosh-Ware) - * [@BastelPichi](https://github.com/BastelPichi) - * [@suifengtec](https://github.com/suifengtec) - * Danke an [@Furim](https://github.com/Furim) für Hilfe in der frühen Entwicklungsphase - * Danke an [@ATAR4XY](https://www.youtube.com/channel/UC-gf5ejhDuAc_LMxvugPXbg) für die Gestaltung früherer Logos - * Danke an [@Tech1k](https://github.com/Tech1k) für die [Beyondcoin](https://beyondcoin.io) Partnerschaft und Bereitstellung der [duinocoin.com](https://duinocoin.com) Domain - * Danke an [@MrKris7100](https://github.com/MrKris7100) für die Hilfe bei der Implementierung des SHA1-Algorithmus - * Danke an [@daknuett](https://github.com/daknuett) für Hilfe bei der Arduino SHA1-Bibliothek +## DUCO & wDUCO + +Duino-Coin ist eine Hybrid-Währung, was bedeutet, dass diese in wDUCO umgewandelt werden kann. Dies ist DUCO (als ein Token) auf das [Tron](https://tron.network) Netwerk gewrapt. Aktuell gibt es keinen großen Nutzen dafür, außer seine Ersparnisse in einem externen Wallet zu lagern oder die wDUCOs in einen anderen Token auf JustSwap umzutauschen. Ein Tutorial zur Benutzung von wDUCO gibt es (in englischer Sprache) im [wDUCO Wiki](https://github.com/revoxhere/duino-coin/wiki/wDUCO-tutorial). + + +## Entwicklung + +Die Beiträge der Community machen die Welt der quelloffenen Software zu einem besonderen Ort voller Wissen und Inspiration.
+Alle Beiträge zu dem Duino-Coin Projekt sind daher herzlichst willkommen. + +Wie kann ich helfen? + +* Forke das Projekt +* Erstelle deine Branch +* Committe deine Änderungen +* Stelle sicher, dass alles wie gewollt funktioniert +* Eröffne einen Pull-Request + +Server-Quellcode, Dokumentation für API-Aufrufe und offizielle Bibliotheken zur Entwicklung von eigenen Duino-Coin Apps sind in der [useful tools](https://github.com/revoxhere/duino-coin/tree/useful-tools)-Branch verfügbar. + + +## Benchmarks von offiziell getesteten Geräten und Boards + +
+ + Da diese Tabelle ziemlich lang ist, ist sie standardmäßig ausgeblendet. Klicke auf diesen Text um sie einzublenden! + + + ### Hinweis: Die erzielten Belohnungen hängen von verschiedenen Faktoren ab. Diese Tabelle dient lediglich zur Orientierung. + + | Gerät/CPU/SBC/MCU/Chip | Durchschnittliche Hashrate
(alle Threads) | Mining-
Threads| Energie-
verbrauch| Durschnittliche
DUCO/Tag | + |-----------------------------------------------------------|----------------------------------------------|-------------------|----------------------|-----------------------------| + | Arduino Pro Mini, Uno, Nano etc.
(Atmega 328p/pb/16u2) | 258 H/s | 1 | 0.2 W | 10-13 | + | Teensy 4.1 (soft cryptography) | 80 kH/s | 1 | 0.5 W | - | + | NodeMCU, Wemos D1 etc.
(ESP8266) | 9-10 kH/s (160MHz) 5 kH/s (80Mhz) | 1 | 0.6 W | 3-6 | + | ESP32 | 40-42 kH/s | 2 | 1 W | 6-9 | + | Raspberry Pi Zero | 18 kH/s | 1 | 1.1 W | - | + | Raspberry Pi 3 | 440 kH/s | 4 | 5.1 W | 4-5 | + | Raspberry Pi 4 | 740 kH/s (32bit) | 4 | 6.4 W | 10 | + | ODROID XU4 | 1.0 MH/s | 8 | 5 W | 9 | + | Atomic Pi | 690 kH/s | 4 | 6 W | - | + | Orange Pi Zero 2 | 740 kH/s | 4 | 2.55 W | - | + | Khadas Vim 2 Pro | 1.12 MH/s | 8 | 6.2 W | - | + | Libre Computers Tritium H5CC | 480 kH/s | 4 | 5 W | - | + | Libre Computers Le Potato | 410 kH/s | 4 | 5 W | - | + | Pine64 ROCK64 | 640 kH/s | 4 | 5 W | - | + | Intel Celeron G1840 | 1.25 MH/s | 2 | - | 3.3 | + | Intel Core i5-2430M | 1.18 MH/s | 4 | - | 6.5 | + | Intel Core i5-3230M | 1.52 MH/s | 4 | - | 7.2 | + | Intel Core i5-5350U | 1.35 MH/s | 4 | - | 6.0 | + | Intel Core i5-7200U | 1.62 MH/s | 4 | - | 7.5 | + | Intel Core i5-8300H | 3.67 MH/s | 8 | - | 9.1 | + | Intel Core i3-4130 | 1.45 MH/s | 4 | - | 3.7 | + | AMD Ryzen 5 2600 | 4.9 MH/s | 12 | 67 W | 15.44 | + + Alle Tests wurden mit dem DUCO-S1 Algorithmus **ohne fasthash Beschleunigungen** durchgeführt. Diese Tabelle wird fortlaufend aktualisiert. +
+ + +## Von der Community erstellte Software + +
+ + Da diese Liste ziemlich lang ist, ist sie standardmäßig ausgeblendet. Klicke auf diesen Text um sie einzublenden! + + + Hinweis: Diese Softwaretitel sind nicht von uns entwickelt und wir geben keinerlei Garantien darauf, dass deren Nutzung nicht zu einem Bann des Nutzerkontos führt. Hier sollte man also vorsichtig sein. Insbesonders die Nutzung des [nonceMiner](https://github.com/colonelwatch/nonceMiner) von colonelwatch **wird garantiert zu einem Bann führen**. + + ### Andere Miner die für Duino-Coin funktionieren: + * [DuinoCoinEthernetMiner](https://github.com/Pumafron/DuinoCoinEthernetMiner) - Arduino Ethernet shield Miner by Pumafron + * [STM8 DUCO Miner](https://github.com/BBS215/STM8_DUCO_miner) - STM8S firmware for mining DUCO by BBS215 + * [DuinoCoinbyLabVIEW](https://github.com/ericddm/DuinoCoinbyLabVIEW) - miner for LabVIEW family by ericddm + * [Duino-JS](https://github.com/Hoiboy19/Duino-JS) - a JavaScript miner which you can easily implement in your site by Hoiboy19 + * [Duinotize](https://github.com/mobilegmYT/Duinotize) - Duino website monetizer by mobilegmYT + * [hauchel's duco-related stuff repository](https://github.com/hauchel/duco/) - Collection of various codes for mining DUCO on other microcontrollers + * [duino-coin-php-miner](https://github.com/ricardofiorani/duino-coin-php-miner) Dockerized Miner in PHP by ricardofiorani + * [duino-coin-kodi](https://github.com/SandUhrGucker/duino-coin-kodi) - Mining addon for Kodi Media Center by SandUhrGucker + * [MineCryptoOnWifiRouter](https://github.com/BastelPichi/MineCryptoOnWifiRouter) - Python script to mine Duino-Coin on routers by BastelPichi + * [Duino-Coin_Android_Cluster Miner](https://github.com/DoctorEenot/DuinoCoin_android_cluster) - mine with less connections on multiple devices by DoctorEenot + * [ESPython DUCO Miner](https://github.com/fabiopolancoe/ESPython-DUCO-Miner) - MicroPython miner for ESP boards by fabiopolancoe + * [DUCO Miner for Nintendo 3DS](https://github.com/BunkerInnovations/duco-3ds) - Python miner for Nintendo 3DS by PhereloHD & HGEpro + * [Dockerized DUCO Miner](https://github.com/Alicia426/Dockerized_DUCO_Miner_minimal) - Miner in Docker by Alicia426 + * [NodeJS-DuinoCoin-Miner](https://github.com/LDarki/NodeJS-DuinoCoin-Miner/) - simple NodeJS miner by LDarki + * [d-cpuminer](https://github.com/phantom32-0/d-cpuminer) - pure C miner by phantom32 & revoxhere + * [Go Miner](https://github.com/yippiez/go-miner) by yippiez + * [ducominer](https://github.com/its5Q/ducominer) by its5Q + * [Unofficial miners directory](https://github.com/revoxhere/duino-coin/tree/master/Unofficial%20miners) + * [Julia Miner](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Julia_Miner.jl) by revoxhere + * [Ruby Miner](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Ruby_Miner.rb) by revoxhere + * [Minimal Python Miner (DUCO-S1)](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Minimal_PC_Miner.py) by revoxhere + * [Teensy 4.1 code for Arduino IDE](https://github.com/revoxhere/duino-coin/blob/master/Unofficial%20miners/Teensy_code/Teensy_code.ino) by joaquinbvw + + ### Andere Tools: + * [Duino Miner](https://github.com/g7ltt/Duino-Miner) - Arduino Nano based DUCO miner files and documentation by g7ltt + * [DUINO Mining Rig](https://repalmakershop.com/pages/duino-mining-rig) - 3D files, PCB designs and instructions for creating your own Duino rig by ReP_AL + * [DuinoCoin-balance-Home-Assistant](https://github.com/NL647/DuinoCoin-balance-Home-Assistant) - addon for home assistant displaying your balance by NL647 + * [Duino Coin Status Monitor](https://github.com/TSltd/duino_coin) for 128x64 SSD1306 OLED and ESP8266 by TSltd + * [ducopanel](https://github.com/ponsato/ducopanel) - a GUI app for controling your Duino-Coin miners by ponsato + * [Duino AVR Monitor](https://www.microsoft.com/store/apps/9NJ7HPFSR9V5) - GUI Windows App for monitoring AVR devices mining DUCO by niknak + * [Duino-Coin Arduino library](https://github.com/ricaun/arduino-DuinoCoin) by ricaun + * [DuinoCoinI2C](https://github.com/ricaun/DuinoCoinI2C) - Use ESP8266/ESP32 as a master for Arduinos by ricaun + * [Duino-Coin Mining Dashboard](https://lulaschkas.github.io/duco-mining-dashboard/) and troubleshooting helper by Lulaschkas + * [duco-miners](https://github.com/dansinclair25/duco-miners) CLI mining dashboard made by dansinclair25 + * [Duco-Coin Symbol Icon ttf](https://github.com/SandUhrGucker/Duco-Coin-Symbol-Icon-ttf-.h) by SandUhrGucker + * [DUCO Monitor](https://siunus.github.io/duco-monitor/) account statistics website by siunus + * [duino-tools](https://github.com/kyngs/duino-tools) written in Java by kyngs + * [Duino Stats](https://github.com/Bilaboz/duino-stats) official Discord bot by Bilaboz + * [DuCoWallet](https://github.com/viktor02/DuCoWallet) GUI Wallet by viktor02 + * [Duco-widget-ios](https://github.com/naphob/duco-widget-ios) - a Duino-Coin iOS widget by Naphob + + Zudem gibt es eine ähnliche Liste auf der (englischsprachigen) [Internetseite](https://duinocoin.com/apps). +
+ + +## Lizenz + +Duino-Coin ist größtenteils unter der MIT License veröffentlicht. Schaue für weitere Informationen in die `LICENSE`-Datei. +Einige Dateien von Dritten sind eventuell unter anderen Lizenzen veröffentlicht. Bitte schaue in deren `LICENSE`-Statements, welche sich meist am Anfang des jeweiligen Quellcodes befindet. + + +## Nutzungsbedingungen +1. Duino-Coins ("DUCOs") werden durch Miner in einem Prozess namens 'mining' erhalten.
+2. Mining ist in der Nutzung des DUCO-S1 Algorithmuses definiert (wie hier im Duino-Coin Whitepaper ausgeführt), wo für die Lösung eines mathematischen Problems eine Belohnung ausgeschüttet wird.
+3. Mining kann offiziell mit CPUs, AVR Boards (z.B. Arduino Boards), Einplatinencomputern (z.B. Raspberry Pi Boards) und ESP8266/32 Boards mittels der Nutzung von offizieller Mining-Software durchgeführt werden (andere offiziell erlaubte Miner sind in dem oberen Teil der README aufgeführt).
+4. Alle Miner müssen die für sie geschaffene/zutreffende Schwierigkeit verwenden. +5. Mining mit GPUs, FPGAs und anderer Hochleistungshardware ist erlaubt, aber nur mit der `EXTREME` Mining-Schwierigkeit.
+6. Alle Nutzer welche nicht die ihrer Hardware entsprechende Schwierigkeit nutzen (siehe dafür die Schwierigkeits-Liste), werden automatisch durch eine Verschiebung auf die korrekte Schwierigkeit ausgebremst.
+7. Jeder Nutzer der fortlaufend versucht eine für die Hardware zu niedrige Mining-Schwierigkeit zu benutzen, kann temporär oder permanent gebannt werden.
+8. Bannen involviert die Sperrung des Kontozugangs, sowie das Löschen des Kontos.
+9. Nur legal erhaltene Coins können getauscht werden.
+10. Konten können temporär deaktiviert/ausgesetzt werden, um weitere Nachforschungen ("investigations") bezüglich Verstößen ("violation" oder "abuse") gegen die Nutzungsbedingungen durchzuführen.
+11. Eine dem offiziellen DUCO-Exchange ("the offical exchange") gestellte Tauschanfrage, kann während Nachforschungen betrieben werden, verzögert oder abgelehnt werden.
+12. Dem DUCO-Exchange aufgegebene Tauschanfragen können aufgrund von Verstößen gegen die Nutzungsbedingungen oder wegen einem zu geringen Vorkommen an entsprechenden Coins oder ähnlichem abgelehnt werden.
+13. Das Minen mit kostenfreien Cloud-Services (oder kostenfreien Virtual Private Servers, wie z.B. Repl.it, GitHub Actions, etc.) ist nicht erlaubt, da es gegenüber anderen unfair ist.
+14. Die DUCOs eines Nutzers können verbrannt ("burnt") werden, falls sich ein Verstoß herausstellen sollte.
+15. Diese Nutzungsbedingungen können sich jederzeit ohne vorherige Ankündigung ändern.
+16. Aus rationalen Gründen (wie beispielsweise zum Multi-Mining) mehr als ein Nutzerkonto zu besitzen, ist nicht erlaubt. Mehrere Konten, welche auf einem einzigen Computer oder Netwerk genutzt werden, werden blockiert, es sei denn, sie sind hiervon ausgeschlossen ("whitelisted").
+17. Das Senden von Transaktionen zu Werbezwecken ist nicht erlaubt.
+18. Das Senden von vielen Transaktionen innerhalb eines kurzen Zeitraums kann zu einem Auslösen des "Kolka system" führen, welches die Aktionsrate beschränkt oder den Nutzer blockiert.
+19. Von der Community erstellte Software muss mit den Regeln übereinstimmen (Nutzungsbedingungen, Mining-Schwierigkeiten, etc.). Der Missbrauch des Systems führt zur Blockierung der Software und/oder des/der Nutzer(s).
+20. Konten mit falscher Bezeichnung oder Nutzung (vortäuschen eine andere Person zu sein, Fake-Bots, etc.) sind nicht erlaubt.
+21. Jeder Duino-Coin Nutzer erklärt sich mit den oben genannten Regeln einverstanden. Fehlerhaftes Verhalten führt zur Blockierung des Nutzerkontos.
+ + +## Datenschutzerklärung +1. Auf dem Hauptserver werden nur Nutzernamen, gehashte Passwörter (mit der Hilfe von bcrypt), Konto Erstellungs-Zeitpunkte, letzte Login-Zeitpunkte und E-Mail Adressen von Nutzern als deren Daten gespeichert.
+2. E-Mail Adressen sind nicht öffentlich zugänglich und werden nur genutzt, um den Nutzer falls nötig zu kontaktieren, um Tauschanfragen beim DUCO-Exchange zu bestätigen und um (zukünftig) gelegentlich eine Newsletter zuzustellen.
+3. Kontostände, Transaktionen und zum Mining gehörende Daten sind öffentlich zugänglich/abrufbar über die JSON APIs.
+4. Die Datenschutzerklärung kann zukünftig geändert werden, jedoch werden die Nutzer zuvor davon in Kenntnis gesetzt. + + +## Aktive Betreiber des Projekts + +* [@revoxhere](https://github.com/revoxhere/) - robik123.345@gmail.com (Lead Python dev, project founder) +* [@Bilaboz](https://github.com/bilaboz/) (Lead NodeJS dev) +* [@connorhess](https://github.com/connorhess) (Lead Python dev, Node-S owner) +* [@JoyBed](https://github.com/JoyBed) (Lead AVR dev) +* [@Yennefer](https://www.instagram.com/vlegle/) (Lead social manager) +* [@Tech1k](https://github.com/Tech1k/) - kristian@beyondcoin.io (Lead Webmaster and DUCO Developer) +* [@ygboucherk](https://github.com/ygboucherk) ([wDUCO](https://github.com/ygboucherk/wrapped-duino-coin-v2) dev) +* [@Lulaschkas](https://github.com/Lulaschkas) (Dev) +* [@joaquinbvw](https://github.com/joaquinbvw) (AVR dev) + +Ein großes Dankeschön an alle [Contributors](https://github.com/revoxhere/duino-coin/graphs/contributors), welche bei der Entwicklung des Duino-Coin Projekts geholfen haben.
Projekt Link: [https://github.com/revoxhere/duino-coin/](https://github.com/revoxhere/duino-coin/) +
+Link zur Internetseite: [https://duinocoin.com/](https://duinocoin.com/) +
+Duino-Coin Status-Seite: [https://status.duinocoin.com](https://status.duinocoin.com) + +
Translated version of this document! There is no guarantee for this translation to be 100% accurate.
diff --git a/Resources/README_TRANSLATIONS/README_kr_KR.md b/Resources/README_TRANSLATIONS/README_kr_KR.md index e1da559f..98ee0a1c 100644 --- a/Resources/README_TRANSLATIONS/README_kr_KR.md +++ b/Resources/README_TRANSLATIONS/README_kr_KR.md @@ -45,23 +45,24 @@
-# Duino 코인 한글 번역 +# Duino 코인 한글 번역본

-Duino-Coin은 Arduinos, ESP8266/32 보드, 라즈베리 파이, 컴퓨터 등으로 채굴할 수 있는 코인입니다(Wi-Fi 라우터, 스마트 TV, 스마트폰, 스마트워치, SBC, MCU 또는 GPU 포함). +Duino-Coin은 Arduinos, ESP8266/32 보드, 라즈베리 파이, 컴퓨터 등으로 채굴할 수 있는 코인입니다 (Wi-Fi 라우터, 스마트 TV, 스마트폰, 스마트워치, SBC, MCU 또는 GPU 포함).

-| 주요 특징 | 기술 사양 | 지원가능한 보드 | +| 주요 특징 | 사용된 기술 | 지원되는 보드 | |-|-|-| -| 💻 다수의 플랫폼에 지원
👥 빠르게 성장하는 커뮤니티
💱 용이한 사용 및 교환
(DUCO Exchange, Node-S, JustSwap, SushiSwap에서)
🌎 어디서든지 사용 가능
:new: 완전히 독창적인 오픈 소스 프로젝트
🌳 초보자 친화적 및 친환경적
💰 효율적인 비용과 쉬운 채굴 | ⚒️ 알고리즘: DUCO-S1, XXHASH, 이외
추가 예정 (PoS 포함)
♐ 보상: 채굴자에게 공정한 보상을 제공하는
"Kolka" 시스템
⚡ 거래 시간: 즉시
🪙 코인 공급량: 무제한
(2020년 12월 이전: 350k 코인)
(향후 새로운 한도 계획 예정)
🔤 시세: DUCO (ᕲ)
🔢 소수점: 최대 20 | ♾️ Arduinos
(Uno, Nano, Mega, Due, Pro Mini 등)
📶 ESP8266s
(NodeMCU, Wemos 등)
📶 ESP32s
(ESP-WROOM, ESP32-CAM 등)
🍓 라즈베리파이
(1, 2, Zero (W/WH), 3, 4, Pico, 400)
🍊 오렌지 파이
(Zero, Zero 2, PC, Plus 등)
⚡ Teensy 4.1 보드 | +| 💻 다양한 플랫폼 지원
👥 빠르게 성장하는 커뮤니티
💱 쉬운 사용 및 교환
(DUCO Exchange, Node-S, JustSwap, SushiSwap에서)
🌎 어디서든지 사용 가능
:new: 완전히 독창적인 오픈 소스 프로젝트
🌳 초보자 친화적 및 친환경적
💰 효율적인 비용과 쉬운 채굴 | ⚒️ 알고리즘: DUCO-S1, XXHASH, 이외
추가 예정 (PoS 포함)
♐ 보상: 채굴자에게 공정한 보상을 제공하는
"Kolka" 시스템
⚡ 거래 시간: 즉시
🪙 코인 공급량: 무제한
(2020년 12월 이전: 350k 코인)
(향후 새로운 한도 계획 예정)
🔤 시세: DUCO (ᕲ)
🔢 소수점: 최대 20 | ♾️ Arduinos
(Uno, Nano, Mega, Due, Pro Mini 등)
📶 ESP8266s
(NodeMCU, Wemos 등)
📶 ESP32s
(ESP-WROOM, ESP32-CAM 등)
🍓 라즈베리파이
(1, 2, Zero (W/WH), 3, 4, Pico, 400)
🍊 오렌지 파이
(Zero, Zero 2, PC, Plus 등)
⚡ Teensy 4.1 보드 | ## 시작하기 #### Duino-Coin을 시작하는 가장 쉬운 방법은 OS에 대한 [최신 릴리스](https://github.com/revoxhere/duino-coin/releases/latest)를 다운로드하는 것 입니다.
-릴리스를 다운로드한 후 압축을 풀고 원하는 프로그램을 실행합니다.
-이 과정에서는 dependency가 요구되지 않습니다. +운영체제(윈도우 혹은 리눅스 등)에 맞는 릴리스를 다운로드한 후 압축을 풀고 원하는 프로그램을 실행합니다.
+이 과정에서는 추가로 다른 프로그램을 설치할 필요가 없습니다. + 도움이 필요하면 공식 웹사이트에 있는 공식 시작 가이드를 참조하세요.
FAQ 및 문제 해결 도움말은 [Wikis](https://github.com/revoxhere/duino-coin/wiki)에서 찾을 수 있습니다.
@@ -221,14 +222,14 @@ Duino-Coin은 대부분 MIT 라이센스에 따라 배포됩니다. 자세한 12. 무료 클라우드 호스팅 서비스(또는 무료 VPS 서비스 - 예: Repl.it, GitHub Actions 등)로 채굴하는 것은 불공정하므로 허용되지 않습니다.
13. 위반 사항이 입증될 경우 사용자의 DUCO가 소멸될 수 있습니다.
14. 이 서비스 약관은 사전 통지 없이 언제든지 변경될 수 있습니다.
-15. 합리적인 이유(예: 다중 채굴) 없이 부계정을 갖는 것은 허용되지 않습니다.
+15. 여러 계정으로 코인을 채굴하는 것 등의 합리적이지 않은 이유로 부계정을 갖는 것은 허용되지 않습니다.
16. Duino-Coin을 사용하는 모든 사용자는 위의 규칙을 준수하는 데 동의합니다.
## 개인 정보 정책 1. master 서버에는 사용자의 이름, 해시된 비밀번호(bcrypt를 이용), 계정 생성 날짜 및 사용자의 이메일만 데이터로 저장됩니다.
2. 이메일은 공개적으로 사용할 수 없으며, DUCO-Exchange 에서 교환을 확인하고 비정기적인 뉴스레터(향후 계획)를 수신하는 등 필요시 사용자에게 연락할 때만 사용됩니다.
-3. 잔액, 거래 및 마이닝 관련 데이터는 JSON APIs 에서 공개적으로 사용할 수 있습니다.
+3. 잔액, 거래 및 채굴 관련 데이터는 JSON APIs 에서 공개적으로 사용할 수 있습니다.
4. 개인 정보 정책은 추후 사전 공지를 통해 변경될 수 있습니다. ## 주요 프로젝트 관리자 @@ -244,7 +245,7 @@ Duino-Coin은 대부분 MIT 라이센스에 따라 배포됩니다. 자세한 * [@joaquinbvw](https://github.com/joaquinbvw) (AVR 개발자) -Duino-Coin 프로젝트 개발에 도움을 준 모든 [contributors](https://github.com/revoxhere/duino-coin/graphs/contributors) 에게 크나큰 감사를 드립니다. +Duino-Coin 프로젝트 개발에 도움을 주신 모든 [contributors](https://github.com/revoxhere/duino-coin/graphs/contributors) 에게 크나큰 감사를 드립니다.