Alfis
Alfis copied to clipboard
[feature request] command line interface
Use case: usage Alfis functions in command line without GUI.
Start daemon as blockchain node on pc1:
# Generate privacy/public keys for server control:
pc1> alfis-cli control-key --output-privacy control-privacy.key --output-public control-public.key
# Start ALFIS daemon:
pc1> alfis -n --port 12345 --control-key control-public.key
Start miner task on pc2, which use blockchain from pc1:
# Generate credential keys:
pc2> alfis-cli credentials --host pc1 --port 12345 --control-key control-privacy.key \
--output ~/.config/alfis/keys/default.key <other-mining-options>
pc2> alfis-cli credentials --host pc1 --port 12345 --control-key control-privacy.key \
--output ~/.config/alfis/keys/secret.key <other-mining-options>
# Mine domain "example.ygg":
# Start task1 in flow1 (terminal 1). Use 2 CPU cores.
# Use privacy key, which public key pair used on pc1.
pc2> alfis-cli domain --host pc1 --port 12345 --control-key control-privacy.key --cpu 2 \
--credential ~/.config/alfis/keys/default.key --domain example --zone ygg <other-mining-options>
# Mine domain "secret-domain.ygg":
# Start task2 in flow2 (terminal 2). Use 2 CPU cores.
pc2> alfis-cli domain --host pc1 --port 12345 --control-key control-privacy.key --cpu 2 \
--credential ~/.config/alfis/keys/secret.key --domain secret-domain --zone ygg <other-mining-options>
# Mine zone "newzone":
# Start task3 in flow3 (terminal 3). Use 4 CPU cores.
pc2> alfis-cli zone --host pc1 --port 12345 --control-key control-privacy.key --cpu 4 \
--credential ~/.config/alfis/keys/secret.key --zone newzone --difficulty 26 <other-mining-options>
<other-mining-options> may contain option like "--data", which require parameter as json-formatted string. If "json-formatted string" contain attributes, like domain/zone, which already used as "--domain" or "--zone" cli parameter, then cli parameter must have priority ("json-formatted string" will be rewrited with values from "--domain" or "--zone" parameter).
Daemon from pc1 only used for read/write from/to network blockchain and not used for mining (use low level of CPU power).
alfis-cli command may use blockchain from local machine (without "--control-key" parameter), or use remote blockchain ("--host" and "--port" parameters may have default values, buy "--control-key" is always required). If alfis-cli use local blockchain, then "alfis-cli" start new daemon instance with dynamically generated public/private keys. Those generated private key must be printed in log. Those daemon must be stopped when alfis-cli finished his task. Each alfis-cli command, which use local blockchain and started without parameters --host/--port/--control-key, must start new daemon instance. If user want to use local blockchain from previously started daemon, then user must select connection parameters from log of first alfis-cli instance. Daemon, started from previously alfis-cli command, must be closed after finish of all alfis-cli instances, which uses this shared daemon.
Each alfis-cli open socket to local/remote alfis daemon and receive all events, which generated in blockhain network.
What is the difference between default.key
and secret.key
?
What is the difference between
default.key
andsecret.key
?
Just different keys.
Ping @Revertron. Why did you marked it as invalid
? Examples above are just proof-of-concept, you could implement it in your own way, like a dialog with user, but in terminal instead of webkit. In short: we just want access to all functionality without hard requirement of gui.
На мой взгляд, все, кому нужны домены (т.е. люди, достаточно образованные, чтобы самостоятельно поднять и настроить серверное ПО), сочтут ввод пары команд (и, возможно, интерактивный ответ на вопросы, что-то наподобие gpg или openssl) удобнее кучи лишних действий в гуе. Это если умолчать про всякие headless окружения, вроде серверов или одноплатников. Тем более вместо полноценного тулкита гуй строится на основе браузерного движка. Также это облегчило бы опакечивание для различных дистрибутивов, а возможно и для *BSD.
Поддерживаю, текущий интерфейс плохо совместим со скринридерами, консоль была бы намного удобнее. Сейчас при создании домена в лог пишется json с информацией о записях. Написать json или что-то похожее вручную и запустить майнинг из консоли намного удобнее, чем пользоватся интерфейсом с постоянно слетающим фокусом