Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
cryptolions
5 лет назад

Руководство По Запуску Собственного DAC На Jungle Test Network С Помощью eosDAC

Оригинал здесь: https://steemit.com/dac/@eosdac/tutorial-launching-your-own-dac-on-the-jungle-test-network-with-eosdac

Будущее децентрализовано. Устойчивые ценности будут формироваться, создаваться и поддерживаться сообществами и их сетевыми эффектами. Централизованные иерархии, контролируемые назначенными людьми которые не были избранными, все чаще будут восприниматься как старая и жесткая модель управления по сравнению с динамичными самостоятельными правовыми единицами, где каждый, у кого есть интерес, имеет право голоса, а те, кто создают ценности еще и получают за это вознаграждение в соответствии с консенсусом сообщества, выраженным через избранных хранителей.

Это, как раз та идея, над созданием которой работает eosDAC.

Меня всегда поддерживают друзья из крипто-сообщества, заинтересованные тем, что создает eosDAC, и которые хотят запустить свои собственные DAC используя нашу технологию с открытым исходным кодом. Две основные задачи возложенные на нас сообществом это производство блоков EOS, принадлежащее сообществу, а также DAC Enabler. В будущем DAC Enabling будет включать в себя DAC Factory, где любой сможет очень просто запустить свой собственный DAC. Конечно же, все это, пока еще в идее, так как потребуется много работы, чтобы упростить и автоматизировать все настройки, создание учетных записей, установить действия по контрактам и настройкам разрешений, но я уверен, что мы доберемся до победного конца.

Нашей первстепенной целью является завершение работы над eos DAC Member Client, чтобы иметь все функциональные возможности, которые необходимы для запуска DAC с простым в использовании децентрализованным интерфейсом. Когда мы активировали голосование за “Хранителей” пару месяцев назад, я написал целый пост со списком аккаунтов EOS, которые стимулируют DAC работать вместе с задействованными репозиториями Github: eosDAC Custodian Candidate Voting Is Live!. Недавно я снова думал о том, как Steem может организовать себя в качестве DAC: SteemDAC: тот план, который мы можем начать сегодня, чтобы децентрализовать управление Steem.

Большинство компонентов уже готово для того, чтобы любой человек смог взять те наработки, которые у нас уже есть, и запустить свой собственный DAC. Хотя в будущем этот процесс будет еще больше упрощен с DAC Factory, я подумал, что было бы полезно и сейчас объяснить в общих чертах какие элементы требуються тем, которые интересуются этим, и которые, не могут дождаться того времени, когда смогут самостоятельно экспериментировать со своим DAC.

Обновление: я записал видео-урок, который вы можете посмотреть здесь:

Давайте начнем!
Ниже приведено руководство по запуску своего собственного DAC, используя те инструменты, которые мы создали до этих пор. Одним из наиболее мощных и полезных аспектов DAC является то, что полномочия распределяются среди избранных хранителей. Это защищает средства и сам код с помощью системы разрешений с multisignature, обновляемой каждый новый период, которая включает в себя ведущих хранителей, избранных держателями токенов. Например, таким аккаунтом для eosDAC является dacauthority, который вы можете увидеть здесь: https://bloks.io/account/dacauthority

Из этого руководства вы узнаете все что вам потребуется, от начала и до конца, для того чтобы создать собственный аккаунт DAC, а также все остальные аккаунты и контракты, которые должны обеспечить работу DAC.

Это руководство для Mac, но с эмуляцией Unix, это можно сделать на любом компьютере.

Для начала создайте папку проекта (для упрощения задачи, вы можете скопировать эти команды и запустить их все сразу)

cd TestDAC

Скачайте ту версию EOS, с которой вы хотите работать. Установите ее. (это займет некоторое время).

cd eos
git checkout mainnet-1.5.1
git submodule update --init --recursive
./eosio_build.sh -s EOS
sudo ./eosio_install.sh

Если на вашем компьютере нет необходимых инструментов или библиотек, необходимых для сборки этих библиотек, посмотрите файл readme на EOS Github.

Вам также понадобится eosio.cdt to для компиляции ваших контрактов:

git clone https://github.com/EOSIO/eosio.cdt.git
cd eosio.cdt
git checkout v1.4.1
git submodule update --init --recursive
./build.sh
sudo ./install.sh

Давайте установим пару скриптов, чтобы сохранить все, что содержится в этой папке. Настройте их в соответствии с вашей собственной начальной папкой. Создайте keosd.sh в папке TestDAC следующим образом:

cwd=$(pwd)
$cwd/eos/build/bin/keosd --wallet-dir $cwd --http-server-address localhost:8900 "$@"

Установите в исполняемый файл и запустите его:

./keosd.sh

В новом окне терминала создайте скрипт для запуска cleos чтобы подключится к Jungle тестнету. Создайте jungle.sh следующим образом:

cwd=$(pwd)
$cwd/eos/build/bin/cleos --url http://jungle2.cryptolions.io:80/ "$@"

И используйте его для создания кошелька:

./jungle.sh wallet create --to-console;
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5................................................"

Сохраните этот пароль кошелька в менеджере паролей или в другом безопасном месте.

Создайте и сохраните пару EOS ключей, которые мы будем использовать для создания аккаунтов в Jungle тестнете.

Private key: 5K..................................................
Public key: EOS6vuK27d4R1vqQmNQc1b7PjGLZ3cNABtD9HEDtPuyXdZKFkwirc

Затем зайдите в Jungle тестнет монитор и создайте аккаунты, которые будут необходимы для запуска DAC. Начнем с authority аккаунта: https://monitor.jungletestnet.io/#account Здесь показаны имена аккаунтов, которые я использовал, но так как они УЖЕ используются в Jungle тестнете, вы конечно же будете должны придумать свои собственные. Просто замените указанный здесь аккаунт на созданный вами.

lukedacauth1

Нам также нужен token account, который содержит все токены и membership code:

```lukedactoken```

Аккаунт хранителя, который управляет голосованием за хранителей и многое другое:

lukedaccusto

Основной аккаунт DAC для хранения средств:

lukedachold1

И multisig аккаунт, на котором будут обрабатываться все платежи по worker proposal:

lukedacmulti

Когда вы будете создавать имена аккаунтов, помните, что они должны быть длиной в 12 символов и не могут содержать никаких символов, а только буквы и цифры от 1 до 5.

Используйте кран на Jungle testnet для каждого аккаунта, чтобы быть уверенными, что у вас есть достаточно EOS токенов для оперативной памяти, процессора и пропускной способности:

https://api.monitor.jungletestnet.io/#faucet

Замените их на имена своих аккаунтов.

Теперь разблокируйте кошелек и импортируйте туда свой приватный ключ, купите себе немного оперативной памяти а также выделите немного ресурсов на CPU / Bandwidth для каждого аккаунта (убедитесь, что keosd.sh работает):

./jungle.sh wallet import
./jungle.sh system buyram lukedactoken lukedactoken "30.000 EOS"
./jungle.sh system delegatebw lukedactoken lukedactoken "10.000 EOS" "50.000 EOS"
./jungle.sh system buyram lukedacmulti lukedacmulti "30.000 EOS"
./jungle.sh system delegatebw lukedacmulti lukedacmulti "10.000 EOS" "50.000 EOS"
./jungle.sh system buyram lukedachold1 lukedachold1 "30.000 EOS"
./jungle.sh system delegatebw lukedachold1 lukedachold1 "10.000 EOS" "50.000 EOS"
./jungle.sh system buyram lukedaccusto lukedaccusto "30.000 EOS"
./jungle.sh system delegatebw lukedaccusto lukedaccusto "10.000 EOS" "50.000 EOS"
./jungle.sh system buyram lukedacauth1 lukedacauth1 "30.000 EOS"
./jungle.sh system delegatebw lukedacauth1 lukedacauth1 "10.000 EOS" "50.000 EOS"

Если бы эти действия происходили в Мейннете, вы бы скорректировали все эти цифры в соответствии с вашими реальными потребностями.

Далее мы переходим к компиляции и настройке контрактов кода для этих аккаунтов

cd daccontracts
git clone https://github.com/eosdac/eosdactoken.git
git clone https://github.com/eosdac/daccustodian.git
git clone https://github.com/eosdac/dacmultisigs.git

Вам не нужно ничего менять в контракте токена, поэтому вы можете установить его как есть (при необходимости измените пути и имена аккаунтов):

Сейчас требуются некоторые настройки, которые мы должны будем сделать для аккаунта daccustodian, но в будущем этого может и не понадобиться.

Модификация daccustodian/daccustodian.hpp:

Заменить name authaccount = "dacauthority"_n; с name authaccount = "lukedacauth1"_n;

(но используйте имя аккаунта, который вы создали)

Измените jungle compile script:

index 8b180ff..8889d3b 100755
--- a/output/jungle/compile.sh
+++ b/output/jungle/compile.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env bash
 
-eosio-cpp -DTOKENCONTRACT='"kasdactokens"' -DTRANSFER_DELAY=20 -o output/jungle/daccustodian/daccustodian.wasm daccustodian.cpp
+eosio-cpp -DTOKENCONTRACT='"lukedactoken"' -DTRANSFER_DELAY=20 -o output/jungle/daccustodian/daccustodian.wasm daccustodian.cpp
 
 eosio-abigen daccustodian.hpp -contract daccustodian -output output/jungle/daccustodian/daccustodian.abi

и запустите его из каталога TestDAC/daccontracts/daccustodian:

./output/jungle/compile.sh

Затем установите его из каталога TestDAC:

Далее мы скомпилируем контракт dacmultisigs из TestDAC/daccontracts/dacmultisigs:

./output/jungle/compile.sh

Установите контракт из каталога TestDAC:

Конфигурация

Теперь давайте все настроим.

DAC связан Конституцией, с которой все участники согласны. Вы можете разместить и свой вариант Конституции, но текущий вариант размещенный на Github использует хэш документа для проверки достоверности. Вы будете должны получить юридическую консультацию относительно того, что должна будет содержать в себе ваша Конституция, но для демонстрации, я собираюсь выложить и клонировать существующую Конституцию eosDAC с небольшими изменениями.

После разветвления на Github,

cd constitution
sed -i -- 's/eosDAC/TestDAC/g' constitution.md
git diff
git add .
git commit -m "Using TestDAC as an example"
git push

Получите хэш md5 вашей конституции через:

md5 constitution.md

Используйте его и raw файл (с только что сделанным вами конкретным коммитом), чтобы создать файл term.json в каталоге TestDAC (важно получить ссылку RAW на файл):

И установите условия в аккаунте:

Если ваш кошелек заблокирован, вы можете разблокировать его с помощью ./jungle.sh wallet unlock

С помощью проводника блоков, проверьте, что условия были обновлены: https://jungle.bloks.io/account/lukedactoken

Кликните Contract, Contract Tables, и потом memberterms

Теперь обновите конфигурацию токена:

./jungle.sh push action lukedactoken updateconfig token_config.json -p lukedactoken

Создайте и выпустите свои собственные токены DAC. В моем примере я использую TESTDAC. Обратите внимание, это можно сделать только один раз, так что не запутайтесь. :)

./jungle.sh push action lukedactoken issue '["lukedactoken", "1000000000.0000 TESTDAC", "Issue"]' -p lukedactoken

Получите ваш файл конфигурации для DAC:

Значения в этом файле dac_config.json соответствуют следующим параметрам:

(maxvotes)
(numelected)
(periodlength)
(authaccount)
(tokenholder)
(serviceprovider)
(should_pay_via_service_provider)
(initial_vote_quorum_percent)
(vote_quorum_percent)
(auth_threshold_high)
(auth_threshold_mid)
(auth_threshold_low)
(lockup_release_time_delay)
(requested_pay_max)

Чтобы полностью понять, как используются эти параметры, вам может понадобиться изучить Конституцию и код. Сейчас же мы будем придерживаться тех значений, которые использует eosDAC. Эти значения могут быть обновлены позже если в этом будет необходимость.

Давайте установим наш config:

Примечание: разрешения на этот вызов немного уникальные, так как в контракте, который в настоящее время разработан, требуется аккаунт lukedacauth1, поэтому нам ранее пришлось вносить изменения. Это будет улучшено в следующем выпуске, поэтому начальная настройка может быть авторизована через _self.

Установите Front End Client

Окей! Теперь мы готовы подключить внешние инструменты к нашим контрактным аккаунтам в DAC. Разветвите https://github.com/eosdac/eosdactoolkit репозиторий и сделайте свои настройки:

cd eosdactoolkit/eosdac-material/src
git checkout dev
grep -lr --exclude-dir=".git" -e "eosDAC" . | xargs sed -i '' -e 's/eosDAC/TestDAC/g'
git commit -a -m "Replacing eosDAC with TestDAC"
git push

Чтобы начать работу, ознакомьтесь с документом здесь: https://github.com/eosdac/eosdactoolkit/tree/master/eosdac-material

Внесите изменения в файл конфигурации Джунглей следующим образом:

index 5b4bd96..fc0f04b 100644
--- a/eosdac-material/src/statics/config.jungle.json
+++ b/eosdac-material/src/statics/config.jungle.json
@@ -3,16 +3,16 @@
     "chainId": "e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473",
     "name": "jungle2",
     "default_node": "http://jungle2.cryptolions.io:80",
-    "authorityAccount": "dacauthority",
+    "authorityAccount": "lukedacauth1",
 
     "tokenContracts":{
       "eosio.token":[{"token": "EOS", "decimals": 4 }],
-      "kasdactokens":[{"token": "KASDAC", "decimals": 4}]
+      "lukedactoken":[{"token": "TESTDAC", "decimals": 4}]
     },
 
     "tokenContract": {
-      "name": "kasdactokens",
-      "token": "KASDAC",
+      "name": "lukedactoken",
+      "token": "TESTDAC",
       "decimals": 4,
       "totalSupply": 1000000000.0000
     },
@@ -22,12 +22,12 @@
       "decimals": 4
     },
     "custodianContract": {
-      "name": "dacelections",
-      "memo": "dacelections",
+      "name": "lukedaccusto",
+      "memo": "lukedaccusto",
       "enable_voting" : true
     },
     "msigContract":{
-      "name": "dacmultisigs"
+      "name": "lukedacmulti"
     },
     "systemContract": {
       "name": "eosio"
@@ -35,7 +35,7 @@
   },
   "api": {
     "bpNodeApiUrl": "https://eosdac.io/topnodes.json",
- "memberClientApiUrl": "http://ns3119712.ip-51-38-42.eu:3000"
+ "memberClientApiUrl": "http://localhost:3000" },

Сохраните и зафиксируйте эти изменения:

git commit -a -m "Updating jungle config for our own needs."
git push

Из папки eosdac-material установите то, что вам нужно, и запустите сервер dev (примечание: использование сценария развертывания удалит все ваши локальные изменения, которые не были переданы в git):

yarn install
cd ..
./deploy-eosdac-material.sh jungle dev true

Если у вас Scatter уже настроен для Jungle тестнета, вы можете добавить туда аккаунт lukedactoken@active для передачи токенов по мере необходимости для дальнейшего тестирования.

Поздравляем! Вы уже достигли большого прогресса. Принесите себе пиво или другой напиток на ваш вкус!

Настройка наших Chain Watchers и API

Теперь давайте заставим этот Profile Watcher работать. Сначала запустите локальную копию mongod в своем окне:

mongod

Затем перейдите к scraper. Этот инструмент следит за Джангл чейном на предмет профилей участников и сохраняет их в mongodb, чтобы клиент-участник мог легко получить к ним доступ позже.

cd Actionscraper-rpc
git checkout dev

Отредактируйте watchers/config.jungle.js по мере необходимости:

index afc7af6..647ef86 100644
--- a/watchers/config.jungle.js
+++ b/watchers/config.jungle.js
@@ -7,17 +7,17 @@ const config = {
 
     db: {
         mongoUrl: 'mongodb://localhost:27017/',
-        dbName: 'eosdac'
+        dbName: 'testdac'
     },
 
     contracts:{
-        custodian: 'dacelections',
-        token: 'kasdactokens',
-        msig: 'dacmultisigs'
+        custodian: 'lukedaccusto',
+        token: 'lukedactoken',
+        msig: 'lukedacmulti'
     }
 
 }

Настройте ваш конфигурационный файл и запустите watcher:

cp watchers/config.jungle.js watchers/config.js
node watcher_custodian.js

На рабочем сервере если вы хотите использовать скрипт start.sh и pm2, то просто запустите его через узел — это будет хорошо для нашего тестирования.

Теперь, когда наш watcher будет искать изменения профиля, то нам нужно будет настроить API-интерфейс, с которым клиент-член сможет общаться, разветвив https://github.com/eosdac/memberclient-api:

cd memberclient-api

Внесите необходимые изменения в файл конфигурации и скопируйте его в config.json.

index ab85c52..86ae7f8 100644
--- a/config.example.json
+++ b/config.example.json
@@ -14,7 +14,7 @@
   },
 
   "db": {
-    "name": "eosdac",
+    "name": "testdac",
     "url": "mongodb://localhost:27017/eosdac"
   },
cp config.example.json config.json
node api_endpoint.js

Далее мы изменим разрешения для всех этих аккаунтов, чтобы все контролировалось через lukedacauth1, который будет получать обновленные разрешения каждый раз, когда будет вызывается новый период.

Используем скрипт разрешений tesnet здесь в качестве шаблона: https://github.com/eosdac/DACtools/blob/master/eosdac-testnet/permissions.sh, здесь мы можем настроить все, что нам нужно.

Сначала давайте настроим несколько файлов разрешений:

    "threshold" : 1,
    "keys" : [],
    "accounts": [{"permission":{"actor":"lukedacauth1", "permission":"active"}, "weight":1}],
    "waits": []
}' > resign.json
echo '{
    "threshold": 2,
    "keys": [],
    "accounts": [
        {"permission":{"actor":"lukedacauth1", "permission":"med"}, "weight":2},
        {"permission":{"actor":"lukedaccusto", "permission":"eosio.code"}, "weight":1}
    ],
    "waits": [{"wait_sec":3600, "weight":1}]
}' > daccustodian_transfer.json
echo '{
    "threshold": 1,
    "keys": [{"key":"EOS6vuK27d4R1vqQmNQc1b7PjGLZ3cNABtD9HEDtPuyXdZKFkwirc", "weight":1}],
    "accounts": [
        {"permission":{"actor":"lukedaccusto", "permission":"eosio.code"}, "weight":1}
    ],
    "waits": []
}' > dacauthority_owner.json
echo '{
    "threshold": 1,
    "keys": [{"key":"EOS6vuK27d4R1vqQmNQc1b7PjGLZ3cNABtD9HEDtPuyXdZKFkwirc", "weight":1}],
    "accounts": [
        {"permission":{"actor":"lukedacauth1", "permission":"high"}, "weight":1}
    ],
    "waits": []
}' > dacauthority_active.json

Теперь мы можем обновиться:

# These permissions are set in new period to the custodians with each configured threshold
./jungle.sh set account permission lukedacauth1 high EOS6vuK27d4R1vqQmNQc1b7PjGLZ3cNABtD9HEDtPuyXdZKFkwirc owner -p lukedacauth1@owner
./jungle.sh set account permission lukedacauth1 med EOS6vuK27d4R1vqQmNQc1b7PjGLZ3cNABtD9HEDtPuyXdZKFkwirc high -p lukedacauth1@owner
./jungle.sh set account permission lukedacauth1 low EOS6vuK27d4R1vqQmNQc1b7PjGLZ3cNABtD9HEDtPuyXdZKFkwirc med -p lukedacauth1@owner
./jungle.sh set account permission lukedacauth1 one EOS6vuK27d4R1vqQmNQc1b7PjGLZ3cNABtD9HEDtPuyXdZKFkwirc low -p lukedacauth1@owner
# resign dactokens account to dacauthority@active
./jungle.sh set account permission lukedactoken active ./resign.json owner -p lukedactoken@owner
./jungle.sh set account permission lukedactoken owner ./resign.json '' -p lukedactoken@owner
# resign dacmultisigs account to dacauthority@active
./jungle.sh set account permission lukedacmulti active ./resign.json owner -p lukedacmulti@owner
./jungle.sh set account permission lukedacmulti owner ./resign.json '' -p lukedacmulti@owner
# resign dacowner account to dacauthority@active, must allow timelocked transfers
# from daccustodian@eosio.code
# daccustodian_transfer.json allows the contract to make transfers with a time delay, or
# dacauthority@med without a time delay.  dacowner must have permission in xfer to transfer tokens
./jungle.sh set account permission lukedachold1 xfer ./daccustodian_transfer.json active -p lukedachold1@owner
./jungle.sh set action permission lukedachold1 eosio.token transfer xfer -p lukedachold1@owner
# Resign eosdacthedac
./jungle.sh set account permission lukedachold1 active ./resign.json owner -p lukedachold1@owner
./jungle.sh set account permission lukedachold1 owner ./resign.json '' -p lukedachold1@owner
# Create xfer permission and give it permission to transfer TESTDAC tokens
./jungle.sh set account permission lukedaccusto xfer ./daccustodian_transfer.json active -p lukedaccusto@owner
./jungle.sh set action permission lukedaccusto lukedactoken transfer xfer -p lukedaccusto@owner
# Resign daccustodian
./jungle.sh set account permission lukedaccusto active ./resign.json owner -p lukedaccusto@owner
./jungle.sh set account permission lukedaccusto owner ./resign.json '' -p lukedaccusto@owner
# Allow high to call any action on daccustodian
./jungle.sh set action permission lukedacauth1 lukedaccusto '' high -p lukedacauth1@owner
# These 2 actions require a medium permission
./jungle.sh set action permission lukedacauth1 lukedaccusto firecust med -p lukedacauth1@owner
./jungle.sh set action permission lukedacauth1 lukedaccusto firecand med -p lukedacauth1@owner
# Allow one to call the multisig actions
./jungle.sh set action permission lukedacauth1 lukedacmulti '' one -p lukedacauth1@owner
# set dacauthority@owner to point to daccustodian@eosio.code
./jungle.sh set account permission lukedacauth1 active ./dacauthority_active.json owner -p lukedacauth1@owner
# Only run this once you are done making any code changes:
#./jungle.sh set account permission lukedacauth1 owner ./dacauthority_owner.json '' -p lukedacauth1@owner

В приведенном выше примере мы сохраняем ключ владельца и активный ключ на тот случай, если что-то сломается в коде, и вы не сможете быстро собрать multisignature запрос, чтобы исправить его, но в работе когда вы захотите удалить ключи из dacauthority_active.json и dacauthority_owner.json запустите последнюю закомментированную команду.

Теперь вы можете войти используя свои тестовые аккаунты в Джунглях, чтобы зарегистрироваться в качестве кандидатов на хранители и проголосовать там. Им также понадобятся токены TESTDAC, чтобы вы могли передавать их следующим образом:

Чтобы запустить DAC и вызвать newperiod, вам потребуется целых 12 хранителей, поэтому вы можете создать группу в Джунглях следующим образом:

testdaccust1
testdaccust2
testdaccust3
testdaccust4
testdaccust5
testdaccus11
testdaccus12
testdaccus13
testdaccus14
testdaccus15

Просто используйте

./jungle.sh create key --to-console

Чтобы создать ключ для их использования. Вы можете использовать Scatter и ваш member client, или же вы можете воспользоваться cleos.

Чтобы зарегистрироваться в качестве участника, поставьте токены TESTDAC, номинируйте себя в качестве кандидата на хранителя и проголосуйте за себя с помощью ключей, используя хэш Конституции, который мы сохраняли выше (убедитесь, что вы импортируете нужный ключ с помощью ./jungle.sh wallet import ) например так:

./jungle.sh transfer -c lukedactoken testdaccust1 lukedaccusto "35000.0000 TESTDAC" "lukedaccusto" -p testdaccust1
./jungle.sh push action lukedaccusto nominatecand '["testdaccust1", "1.0000 EOS"]' -p testdaccust1
./jungle.sh push action lukedaccusto votecust '["testdaccust1",["testdaccust1"]]' -p testdaccust1

Предполагая, что у нас есть 12 кандидатов хранителей, вы можете вызвать newperiod для разблокировки DAC:

./jungle.sh push action lukedaccusto newperiod '{"message":"New Period"}' -p testdaccus15

На этом все! Теперь у вас есть свой собственный DAC!

Вы должны увидеть разрешения на обновление вашего authority аккаунта следующим образом:

Забавы ради, давайте продолжим и немного настроим member client, изменив некоторые цвета:

index a04237f..0c48881 100644
--- a/eosdac-material/src/css/themes/common.variables.styl
+++ b/eosdac-material/src/css/themes/common.variables.styl
@@ -15,8 +15,8 @@
 // to match your app's branding.
 @import "core-override.variables.styl"
 
-$primary   = #4a1289
-$secondary = #26A69A
+$primary   = #1a9c41
+$secondary = #076a61
 $tertiary  = #555
 
 $neutral   = #E0E1E2
@@ -25,12 +25,12 @@ $negative  = #DB2828
 $info      = #31CCEC
 $warning   = #F2C037
 
-$dark      = #272B35
+$dark      = #2b3527
 $p-light   = #7c41ba
 $dark2     = #1E2128
 $dimwhite  = rgba(255,255,255,0.6)
 
-$body-background = #272B35
+$body-background = #2b3527
 $body-color = #ffffff
 $modal-body-color = $white
 $modal-background = $dark2

И добавим другое изображение логотипа (обязательно скопируйте изображение в папку statics/img):

index b7e7ecf..8d51a3b 100644
--- a/eosdac-material/src/layouts/default.vue
+++ b/eosdac-material/src/layouts/default.vue
@@ -7,7 +7,7 @@
         <q-icon v-else name="icon-menu-9" />
       </q-btn>
       <q-toolbar-title class="text-white q-pl-none">
-        < img src="statics/img/icon-signet-eosdacmemberclient175x48.svg" style="height:48px;" :title="$t('default.member_client')">
+        < img src="statics/img/do_you_want_to_build_a_dac.jpg" style="height:48px;" :title="$t('default.member_client')">
       </q-toolbar-title>
       <div class="xs-hide sm-hide md-hide" >
         <MenuDropdown class="no-pointer-events animate-fade" v-if="getAccountName && getRegistered && getTokenBalance" iconColor="white" :label="$t('default.member_status')" :statusLabel="1" :sublabel="$t('default.registered')" icon="icon-role-3" />

(Примечание: пробел, добавленный после «<» выше, должен быть удален. Он был включен из-за этой ошибки.)
Вот результат:

На этом все! Поздравляем! Вы создали свое собственное децентрализованное автономное сообщество (DAC) на Джангл тестнете! Настройка клиента-участника включает в себя некоторое изучение Material Design, платформы Quasar и Vue.js. Вы также можете настроить параметры DAC, имея больше или меньше 12 хранителей, изменяя их вес голосования и многое другое.

Мы будем рады получить ваши отзывы, когда начнете использовать этот способ для организации и расширения возможностей для своих сообществ. Чтобы поддержать текущую работу, пожалуйста, голосуйте за EOS блок продюсера eosdacserver или используйте прокси, который поддерживает нас. Также, мы очень хотели бы, чтобы запускались еще больше DACов и передавали токены, которые они создают, нашим членам eosDAC (в настоящее время чуть более 1900 аккаунтов), которые поддержали нас и воплотили это в реальность. Спасибо!

Luke with the incredible work and help of Michael, Dallas, Piecesnbits, Nod74, and many more.

Пожалуйста, голосуйте за eosdacserver
Подпишитесь на нашу рассылку, чтобы оставаться в курсе событий и следить за нами на вашей любимой социальной сети:

Steemit | Discord | Telegram | Facebook | Twitter | Google-plus | Github | Instagram |Linkedin | Medium | Reddit | YouTube | Weibo| VK| Bihu

Переведено CryptoLions

Website

Telegram

Steemit

Twitter

GitHub

Meetup

2
0.299 GOLOS
На Golos с June 2018
Комментарии (0)
Сортировать по:
Сначала старые