Code Monkey home page Code Monkey logo

epic's Introduction

epic-logo-big-text-epic

Documentation Wiki Release Version License Epic Master Branch Build Status

This is the implementation of the epic server. The epic server is a node in the network that validates, propagates, and sometimes produces new blocks, basically a collection of processed transactions.

Introduction to MimbleWimble and Epic

MimbleWimble is a blockchain format and protocol that provides extremely good scalability, privacy and fungibility by relying on strong cryptographic primitives. It addresses gaps existing in almost all current blockchain implementations.

Epic is an open source software project that implements a MimbleWimble blockchain and fills the gaps required for a full blockchain and cryptocurrency deployment.

The main goal and characteristics of the Epic project are:

  • Privacy by default. This enables complete fungibility without precluding the ability to selectively disclose information as needed.
  • Scales mostly with the number of users and minimally with the number of transactions (<100 byte kernel), resulting in a large space saving compared to other blockchains.
  • Strong and proven cryptography. MimbleWimble only relies on Elliptic Curve Cryptography which has been tried and tested for decades.
  • Design simplicity that makes it easy to audit and maintain over time.
  • Community driven, encouraging mining decentralization.

Status

Epic is live with mainnet.

Getting Started

The full Epic Wiki can be found here: Epic Cash - Wiki

Getting started with the project 💡

By the end of this section, you should have the basic knowledge of how to run Epic Cash and its different binaries functions.

Here are the basic topics:

Quick User guides 📚

Has more information about the project, such as how to do transactions, and details about mining.

Here are the basic topics:

Building the projects 🧰

If you want to build the projects, you should be able to have the minimum requirements for building the projects directly from their repositories.

This section is divided by OS:

Contributing 🧱

If you want to help us and contribute with our code:

Credits

Tom Elvis Jedusor for the first formulation of MimbleWimble.

Andrew Poelstra for his related work and improvements.

John Tromp for the Cuckoo Cycle proof of work.

Grin Developers for the initial implementation

J.K. Rowling for making it despite extraordinary adversity.

License

Apache License v2.0.

epic's People

Contributors

acosta-brickabode avatar antiochp avatar aroncds avatar ceciliacsilva avatar code-chronos avatar denommus avatar ericshimizukarbstein avatar hdmark avatar jerjanssen avatar jhelison avatar jhelisonuchoa avatar johanneshahn avatar josiasal avatar josiasalexandre avatar jualns avatar jualnsilva avatar karthixinbox avatar leonardo-brickabode avatar marciocerqueira avatar marciomacedoba avatar paimpozhil avatar rassilva avatar raulssilva avatar renantkn avatar shunmuga-sundaram avatar shunmugamsundaram avatar who-biz avatar yuribrickabode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

epic's Issues

[UI IMPROVEMENT] Use TEXT COLOR in the TUI "Logs" section to make statuses more intuitive for admins + Add ERROR Codes.

I think the TEXT COLOR of the different messages that are displayed in the "Logs" section of the TUI could be improved.

The majority of the messages appear in "RED" color and I feel this makes it difficult to differentiate between what are less critical and more critical Status messages.

FEATURE REQUEST

Please go through all the different status messages and categorise them into the following 3 "color" buckets:

A) GREEN COLOR [Error Codes: 1001-10xx]
These are for non-critical errors. The Epic server is still performing perfectly and the status messages are more "informative" in nature.
E.g. "Yay! You won a block" or "...job_id XX - Submitted too late."

B) ORANGE COLOR [Error Codes: 2001-20xx]
These are for semi-critical errors, where the Epic server is operating, but may need some attention.
E.g. BanReason issues

C) RED COLOR [Error Codes: 3001-30xx]
These messages are show-stopper errors that inform the administrator that the server is malfunctioning and not processing blocks or not able to mine blocks etc.
E.g. "Error building new block: Can't connect to wallet listener."

I am happy for the developers to use there own discretion as to the categorisation of the different status messages into the different "color" buckets as they would know (better than I) what are non-critical vs semi-critical vs show-stopper errors are in the scheme of things.

ERROR CODE NUMBERS

After each bucket is a Code range. I feel each Error should be assigned a unique Code that corresponds to the level of the error. This way when an Admin sees an Error Code and may want to do a little more research on the error, they can Google the Error Code and they can some across a GitHub page with all the Error Codes and more detailed descriptions and remedies.

This should help reduce the number of Support Tickets on error codes.

ERROR epic_core::core::block - block header b9c73ea08824 validation error: invalid POW: Verification Error: Hash randomx invalid!

Describe the bug

  • Cannot download the blockchain.
  • Stuck at "Sync step 1/7: Downloading header" or "Running" (cuz cannot find peers)

To Reproduce

  1. Compile epic and run

Expected behavior
The server should work normally and the blockchain should be downloaded.


Required data

Logs screenshot

Screenshot_2024-04-27_19-32-20

Logs file

epic-server.log

.epic/main/epic-server.toml

# Generated Server Configuration File for Epic
#
# When running the epic executable without specifying any command line
# arguments, it will look for this file in two places, in the following
# order:
#
# -The working directory
# -[user home]/.epic
#

#########################################
### SERVER CONFIGURATION              ###
#########################################

#Server connection details
[server]

#the directory, relative to current, in which the epic blockchain
#is stored
db_root = "/home/chakra/.epic/main/chain_data"

#path of TLS certificate file, self-signed certificates are not supported
#tls_certificate_file = ""
#private key for the TLS certificate
#tls_certificate_key = ""

#the address on which services will listen, e.g. Transaction Pool
api_http_addr = "127.0.0.1:3413"

#path of the secret token used by the API to authenticate the calls
#comment the it to disable basic auth
api_secret_path = "/home/chakra/.epic/main/.api_secret"
foreign_api_secret_path = ".foreign_api_secret"

#path to the file that contains the pre-generated foundation coinbases
foundation_path = "/usr/share/epic/foundation.json"

#The chain type, which defines the genesis block and the set of cuckoo
#parameters used for mining as well as wallet output coinbase maturity. Can be:
#AutomatedTesting - For CI builds and instant blockchain creation
#UserTesting - For regular user testing (cuckoo 16)
#Floonet - For the long term floonet test network
#Mainnet - For mainnet
chain_type = "Mainnet"

#the chain validation mode, defines how often (if at all) we
#want to run a full chain validation. Can be:
#"EveryBlock" - run full chain validation when processing each block (except during sync)
#"Disabled" - disable full chain validation (just run regular block validation)
chain_validation_mode = "Disabled"

#run the node in "full archive" mode (default is fast-sync, pruned node)
archive_mode = false

#Whether or not to skip pow validation when syncing headers
#Only applies to blocks in checkpointed range, unless disable_checkpoints is set to true
skip_pow_validation = false

#Disables checkpoint-based pow_validation, no proof of work will be validated whatsoever
#while syncing. Has no effect unless 'skip_pow_validation' is set to true
disable_checkpoints = false

#skip waiting for sync on startup, (optional param, mostly for testing)
skip_sync_wait = false

#Timeout (in seconds) without the verification of the existence of more headers to be synced.
#If no valid value is given to this variable (e.g negative values, zero),
#the default value of 10 (seconds) is used.
header_sync_timeout = 10

#whether to run the ncurses TUI. Ncurses must be installed and this
#will also disable logging to stdout
run_tui = true

#Whether or not to set PolicyConfig to only use PoWType::RandomX.
#Required for use of Floonet, has no effect on Mainnet
only_randomx = false

#Whether or not to set PolicyConfig to disable PoWType::ProgPow
#For use on Floonet or Usernet. Has no effect on Mainnet
no_progpow = false

#Whether to run a test miner. This is only for developer testing (chaintype
#usertesting) at cuckoo 16, and will only mine into the default wallet port.
#real mining should use the standalone epic-miner
run_test_miner = false

#test miner wallet URL (burns if this doesn't exist)
#test_miner_wallet_url = "http://127.0.0.1:3415"

#########################################
### SERVER P2P CONFIGURATION          ###
#########################################
#The P2P server details (i.e. the server that communicates with other
[server.p2p_config]

#The interface on which to listen.
#0.0.0.0 will listen on all interfaces, allowing others to interact
#127.0.0.1 will listen on the local machine only
host = "0.0.0.0"

#The port on which to listen.
port = 3414

#how to seed this server, can be None, List or DNSSeed
seeding_type = "List"

#If the seeding type is List, the list of peers to connect to can
#be specified as follows:
seeds = ["95.217.197.180:3517","5.161.127.56:3414","5.75.242.4:3414","5.78.71.29:3414"]

#hardcoded peer lists for allow/deny
#will *only* connect to peers in allow list
#peers_allow = ["192.168.0.1:3414", "192.168.0.2:3414"]
#will *never* connect to peers in deny list
#peers_deny = ["192.168.0.3:3414", "192.168.0.4:3414"]
#a list of preferred peers to connect to
#peers_preferred = ["192.168.0.1:3414","192.168.0.2:3414"]

#how long a banned peer should stay banned
#ban_window = 10800

#maximum number of inbound peers (default = 128)
#peer_max_inbound_count = 40

#maximum number of outbound peers (default = 128)
#peer_max_outbound_count = 40

#preferred minimum number of peers (we'll actively keep trying to add peers
#until we get to at least this number
#peer_min_preferred_count = 8

# 31 = Bit flags for FULL_NODE, with HEADER_FASTSYNC capability
#This structure needs to be changed internally, to make it more configurable

# A preferred dandelion_peer, mainly used for testing dandelion
# dandelion_peer = "10.0.0.1:13144"

[server.p2p_config.capabilities]
bits = 31


#########################################
### MEMPOOL CONFIGURATION             ###
#########################################
[server.pool_config]

#base fee that's accepted into the pool
accept_fee_base = 100000

#maximum number of transactions allowed in the pool
max_pool_size = 50000

#maximum number of transactions allowed in the stempool
max_stempool_size = 50000

#maximum total weight of transactions that can get selected to build a block
mineable_max_weight = 40000


#########################################
### DANDELION CONFIGURATION           ###
#########################################
[server.dandelion_config]

#dandelion epoch duration
epoch_secs = 600

#fluff and broadcast after embargo expires if tx not seen on network
embargo_secs = 180

#dandelion aggregation period in secs
aggregation_secs = 30

#dandelion stem probability (stem 90% of the time, fluff 10% of the time)
stem_probability = 90
always_stem_our_txs = true


################################################
### STRATUM MINING SERVER CONFIGURATION      ###
################################################
[server.stratum_mining_config]

#whether stratum server is enabled
enable_stratum_server = true

#what port and address for the stratum server to listen on
stratum_server_addr = "127.0.0.1:3416"

#the amount of time, in seconds, to attempt to mine on a particular
#header before stopping and re-collecting transactions from the pool
attempt_time_per_block = 15
cuckatoo_minimum_share_difficulty = 3
randomx_minimum_share_difficulty = 4000
progpow_minimum_share_difficulty = 200000

#the wallet receiver to which coinbase rewards will be sent
wallet_listener_url = "http://127.0.0.1:3415"

#whether to ignore the reward (mostly for testing)
burn_reward = false

[server.webhook_config]
nthreads = 4
timeout = 10


#########################################
### LOGGING CONFIGURATION             ###
#########################################
[logging]

#whether to log to stdout
log_to_stdout = true

#log level for stdout: Error, Warning, Info, Debug, Trace
stdout_log_level = "WARN"

#whether to log to a file
log_to_file = true

#log level for file: Error, Warning, Info, Debug, Trace
file_log_level = "INFO"

#log file path
log_file_path = "/home/chakra/.epic/main/epic-server.log"

#whether to append to the log file (true), or replace it on every run (false)
log_file_append = true

#maximum log file size in bytes before performing log rotation
#comment it to disable log rotation
log_max_size = 16777216

#maximum count of the log files to rotate over
log_max_files = 32

  • OS: MX Linux (Debian GNU/Linux 12 (bookworm))
  • rustc 1.77.2 (25ef9e3d8 2024-04-09)
  • cargo 1.77.2 (e52e36006 2024-03-26)
System info

System:
  Kernel: 6.7.12-1-liquorix-amd64 arch: x86_64 bits: 64 compiler: gcc
    v: 12.2.0 parameters: audit=0 intel_pstate=disable rcupdate.rcu_expedited=1
    BOOT_IMAGE=/vmlinuz-6.7.12-1-liquorix-amd64
    root=UUID=4360036c-6183-4585-aa57-03927d0f64ad ro quiet splash
  Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm
    v: 4.18.0 dm: LightDM v: 1.26.0 Distro: MX-23.2_ahs_x64 Libretto January 21
    2024 base: Debian GNU/Linux 12 (bookworm)
Machine:
  Type: Desktop Mobo: Micro-Star model: MAG B550 TOMAHAWK MAX WIFI (MS-7C91)
    v: 1.0 serial: <filter> UEFI: American Megatrends LLC. v: 2.60
    date: 10/10/2023
CPU:
  Info: model: AMD Ryzen 9 5950X socket: AM4 bits: 64 type: MT MCP
    arch: Zen 3+ gen: 4 level: v3 note: check built: 2022 process: TSMC n6 (7nm)
    family: 0x19 (25) model-id: 0x21 (33) stepping: 2 microcode: 0xA20120E
  Topology: cpus: 1x cores: 16 tpc: 2 threads: 32 smt: enabled cache:
    L1: 1024 KiB desc: d-16x32 KiB; i-16x32 KiB L2: 8 MiB desc: 16x512 KiB
    L3: 64 MiB desc: 2x32 MiB
  Speed (MHz): avg: 2218 high: 2800 min/max: 2200/5083 boost: enabled
    base/boost: 3400/5050 scaling: driver: acpi-cpufreq governor: ondemand
    volts: 1.1 V ext-clock: 100 MHz cores: 1: 2200 2: 2200 3: 2200 4: 2200
    5: 2200 6: 2200 7: 2200 8: 2200 9: 2200 10: 2200 11: 2200 12: 2800
    13: 2200 14: 2200 15: 2200 16: 2200 17: 2200 18: 2200 19: 2200 20: 2200
    21: 2200 22: 2200 23: 2200 24: 2200 25: 2200 26: 2200 27: 2200 28: 2200
    29: 2200 30: 2200 31: 2200 32: 2200 bogomips: 217619
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA GA104 [GeForce RTX 3060] vendor: Micro-Star MSI
    driver: nvidia v: 525.147.05 non-free: 530.xx+
    status: current (as of 2023-03) arch: Ampere code: GAxxx
    process: TSMC n7 (7nm) built: 2020-22 pcie: gen: 1 speed: 2.5 GT/s
    lanes: 16 link-max: gen: 4 speed: 16 GT/s bus-ID: 2b:00.0
    chip-ID: 10de:2487 class-ID: 0300
  Display: server: X.Org v: 1.21.1.7 compositor: xfwm v: 4.18.0 driver: X:
    loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa alternate: nv
    gpu: nvidia display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 96 s-size: 677x381mm (26.65x15.00")
    s-diag: 777mm (30.58")
  Monitor-1: DP-0 res: 2560x1440 hz: 165 dpi: 108
    size: 600x330mm (23.62x12.99") diag: 685mm (26.96") modes: N/A
  API: OpenGL v: 4.6.0 NVIDIA 525.147.05 renderer: NVIDIA GeForce RTX
    3060/PCIe/SSE2 direct-render: Yes
Audio:
  Device-1: NVIDIA GA104 High Definition Audio vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 2b:00.1 chip-ID: 10de:228b class-ID: 0403
  Device-2: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
    bus-ID: 2d:00.4 chip-ID: 1022:1487 class-ID: 0403
  API: ALSA v: k6.7.12-1-liquorix-amd64 status: kernel-api
    tools: alsamixer,amixer
  Server-1: PipeWire v: 1.0.0 status: n/a (root, process) with:
    1: pipewire-pulse status: active 2: wireplumber status: active
    3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: MEDIATEK MT7921K Wi-Fi 6E 80MHz driver: mt7921e v: kernel
    modules: wl pcie: gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 29:00.0
    chip-ID: 14c3:0608 class-ID: 0280
  IF: wlan0 state: up mac: <filter>
  Device-2: Realtek RTL8125 2.5GbE vendor: Micro-Star MSI driver: r8169
    v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1 port: f000 bus-ID: 2a:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: eth0 state: down mac: <filter>
Bluetooth:
  Device-1: MediaTek Wireless_Device type: USB driver: btusb v: 0.8
    bus-ID: 1-9:6 chip-ID: 0e8d:0608 class-ID: e001 serial: <filter>
  Report: hciconfig ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 3.0
    lmp-v: 5.2 sub-v: 2311 hci-v: 5.2 rev: 919
  Info: acl-mtu: 1021:6 sco-mtu: 240:8 link-policy: rswitch sniff
    link-mode: peripheral accept service-classes: rendering, capturing, object
    transfer, audio, telephony
Drives:
  Local Storage: total: 1.82 TiB used: 191.46 GiB (10.3%)
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: MSI model: M480 PRO 2TB
    size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 type: SSD serial: <filter> rev: EIFM80.0 temp: 35.9 C scheme: GPT
  SMART: yes health: PASSED on: 23d 14h cycles: 99
    read-units: 1,929,753 [988 GB] written-units: 4,818,043 [2.46 TB]
Partition:
  ID-1: / raw-size: 1.82 TiB size: 1.79 TiB (98.37%) used: 191.14 GiB (10.4%)
    fs: ext4 block-size: 4096 B dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-5d75316a-19bd-44ac-892e-477343b3b3ec
  ID-2: /boot raw-size: 1024 MiB size: 973.4 MiB (95.06%)
    used: 328.4 MiB (33.7%) fs: ext4 block-size: 4096 B dev: /dev/nvme0n1p2
    maj-min: 259:2
  ID-3: /boot/efi raw-size: 256 MiB size: 252 MiB (98.46%)
    used: 274 KiB (0.1%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
    maj-min: 259:1
Swap:
  Kernel: swappiness: 15 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: file size: 6 GiB used: 0 KiB (0.0%) priority: -2
    file: /swap/swap
Sensors:
  System Temperatures: cpu: 35.8 C mobo: N/A gpu: nvidia temp: 44 C
  Fan Speeds (RPM): N/A gpu: nvidia fan: 0%
Info:
  Processes: 592 Uptime: 11h 51m wakeups: 1 Memory: 31.27 GiB
  used: 7.66 GiB (24.5%) Init: SysVinit v: 3.06 runlevel: 5 default: graphical
  tool: systemctl Compilers: gcc: 12.2.0 alt: 12 clang: 14.0.6 Packages: 2485
  pm: dpkg pkgs: 2460 libs: 1323 tools: apt,apt-get,aptitude,nala,synaptic
  pm: rpm pkgs: 0 pm: flatpak pkgs: 25 Shell: Sudo (sudo) v: 1.9.13p3
  default: Bash v: 5.2.15 running-in: xfce4-terminal inxi: 3.3.26


Additional context
Many times i had to kill epic process cuz it took too much time to exit.

Illegal instruction (core dumped)

Hello, I have downloaded Linux binaries from the official page and am trying to run epic server on Ubuntu 20.04.2 LTS.
Followed all the instructions and then run in the terminal , it crashed:
epic
Performing chain data rollback
Downloading canonical chain data to rollback to
Please wait: this may take a while
Extracting new chain data
Done
Illegal instruction (core dumped)

Any ideas what went wrong?
Hardware is Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz with 8G memory

Request for individual worker hash rate to be added to Mining tab

Was wondering if we could have the workers hash rates added to the server mining tab. This would allow users to monitor all instances in one location. So that they don't have to check all the individual windows. They would also no longer have to read individual logs to figure out hash rates of individual workers. Could be a good addition so that solo miner can monitor things like they can when they mine to a pool.

i have aproblem on my epic cash desktop wallet, i send 277 epic from my phone wallet, that was confirmed on desktop wallet , but it remains unconfirmed when i click the coins button, also tried to refresh balance button but it doesnt scan the blockchain

i have aproblem on my epic cash desktop wallet, i send 277 epic from my phone wallet, that was confirmed on desktop wallet , but it remains unconfirmed when i click the coins button, also tried to refresh balance button but it doesnt scan the blockchain, does anyone know how to solve this problem. i ve send small amount after this transaction and the worked?
Rene

[BUG]The file `.\foundation.json` was not found!

Describe the bug
The file .\foundation.json was not found!
To Reproduce
first start
c:\epic>epic
The file .\foundation.json was not found!
Will try to use the alternative file c:\debian\foundation.json!

Couldn't open the foundation file!
Check if the file "c:\debian\foundation.json" was not changed!

c:\epic>pause
Для продолжения нажмите любую клавишу . . .

if put blank file i got error Invalid foundation file!

Expected behavior
server log
20240422 12:43:45.783 INFO epic_util::logger - log4rs is initialized, file level: Info, stdout level: Warn, min. level: Info
20240422 12:43:45.784 INFO epic - Using configuration file at C:\Users\roy.epic\main\epic-server.toml
20240422 12:43:45.784 INFO epic - This is Epic version 3.6.0 (git v3.6.0), built for x86_64-pc-windows-msvc by rustc 1.76.0 (07dca489a 2024-02-04).
20240422 12:43:45.784 INFO epic::cmd::server - Starting EPIC in UI mode...
20240422 12:43:45.784 WARN epic_core::global - The file .\foundation.json was not found!
20240422 12:43:45.785 WARN epic_core::global - Will try to use the alternative file c:\debian\foundation.json!
...
20240422 12:43:45.785 INFO epic_servers::epic::server - The foundation.json is being read from "c:\debian\foundation.json"
20240422 12:43:45.793 ERROR epic_util::logger -
thread 'main' panicked at 'Error trying to read the foundation.json. Couldn't find/open the file c:\debian\foundation.json!: Os { code: 3, kind: NotFound, message: "Системе не удается найти указанный путь." }': core\src\global.rs:658

Required data

  • Node/Wallet/Miner 3.6.0
  • Config toml file or command line
  • OS: windows 10
  • Rust Version
  • Cargo Version

Additional context
Add any other context about the problem here.

ncurses TUI problem

Describe the bug
My problem is that I can't achieve a normal TUI display in my terminal.

To Reproduce
hm..

Expected behavior
I would like to see a beautiful interface

Required data

  • Node/Wallet/Miner log as text or screenshot
  • Config toml file or command line
  • OS: Ubuntu 23.10
  • Rust Version : 1.66.0
  • Cargo Version : 1.66.0

Additional context
Maybe I'm posting this question to the wrong address. But I can't find a solution(
I'm using a standard gnome terminal application and also guake - in both there is this problem with the display

image

Epic-Wallet transition tests

We are currently working on automating these tests before sharing them with the community.

There is an incompatibility within v2 and v3 wallet transactions. That means that two wallets with different versions(v2 and v3) can't make transactions between themselves.

ID Scenario Linux Status Windows Status Notes
001 Connecting V3 Wallets to a V2 Node DONE DONE We expect this test to fail due to incompatible versions
002 Send Epic Coins from a V3 Wallet to a V2 Wallet (receiver) using the HTTP method DONE DONE
003 Send Epic Coins from a V3 Wallet to a V2 Wallet (receiver) using the File method DONE DONE The File method should work until the last step
004 Receive Epic Coins from a V3 Wallet (Sender) in a V2 Wallet (Receiver) DONE DONE
005 Connecting V2 wallets to a V3 Node DONE DONE We expect this test to succeed
006 Send Epic Coins from a V2 Wallet to a V3 Wallet (receiver) using the HTTP method DONE DONE
007 Send Epic Coins from a V2 Wallet to a V3 Wallet (receiver) using the File method DONE DONE The File method should work until the last step
008 Receive Epic Coins from a V2 Wallet (Sender) in a V3 Wallet (Receiver) DONE DONE
009 Recover an Account Using the V3 Wallet Using the Passphrase Method DONE DONE The passphrase method is failing, there is a workaround
010 Recover an Account Using the V3 Wallet Using the Seed Method DONE DONE This method should work

Key point regarding transactions compatibility

The limited incompatibility between v2 and v3 is a concern, and it needs to be
explained well to the user community. Here is our current guidance:

  • We believe there is no risk of losing funds - this is mimblewimble, the transaction is either successful or never happened.

  • There can be confusion among casual users about locked funds, the need to re-scan wallets, re-check outputs, etc.

  • We expect to get errors in scenarios:

    • v3 wallet is trying to connect to v2 node
    • v3 wallet is sending to v2 wallet (file and HTTP)
    • v3 wallet is receiving from v2 wallet (file and HTTP)
    • v2 wallet is trying to connect to v3 node
    • v2 wallet is sending to v3 wallet (file and HTTP)
    • v2 wallet is receiving from v3 wallet (file and HTTP)

How many of these problems to fix, versus how many to tolerate during the v2 -> v3 transition, remains a topic of active discussion.

wrong sha256 foundation.json for windows

Should be same as unix

#[cfg(target_family = "unix")]
pub const FLOONET_FOUNDATION_JSON_SHA256: &str =
"b4c2e178bf696eaaa35ed3f4eeecd50ebe4d45c9d3ca8f4081168b01deec1899";
#[cfg(target_family = "windows")]
pub const FLOONET_FOUNDATION_JSON_SHA256: &str =
"b4c2e178bf696eaaa35ed3f4eeecd50ebe4d45c9d3ca8f4081168b01deec1899";

[BUG] Endless redownload and unpack txhashset archive

After starting a node which was about 1 week offline the sync process is updating fine.
It syncs the headers and start downloading the txhashset archive and updates to the latest block.
The Message "Node synchronised" is shown. All fine here.

But after this, the Debug log shows additional txhashset archive download progress.
It unpacks the tx hash archive, validates all fine and then it start to download the txhashset archive from peer again.
It never stops.
Screenshot 2023-12-22 123748

To Reproduce
Sync the node to latest height. Stop Node and let it shutdown for some days to reach the txhashset archive download progress.
Start the node again to sync to latest block. Wait for node to be synchronised (Log: Node synchronized ...).
Watch the log "DEBUG" for Message handle_payload: txhashset archive: xxxxx/xxxxx.

Required data

  • OS: Windows

Missing 2.22% in FOUNDATION_LEVY

epic v3: pub const FOUNDATION_LEVY: [u64; 8] = [888, 777, 666, 555, 444, 333, 111, 111];

epic v2: pub const FOUNDATION_LEVY: [f64; 9] = [0.0888, 0.0777, 0.0666, 0.0555, 0.0444, 0.0333, 0.0222, 0.0111, 0.0111,];

pub const FOUNDATION_LEVY: [u64; 8] = [888, 777, 666, 555, 444, 333, 111, 111];

Release Planning: EpicCash v3.0.0

Planning issue for version 3.0.0 of epic and epic-wallet, which is to support the scheduled network-wide upgrade occurring at block TBD around mid-March, 2022.

Outlining release planning for 3.0.0, keeping this updated as I go for now

Target release date

Beta: Early March
Release candidate: Late March
Final release: Early April

Discussion

Planning discussion can be had asynchronously on this issue, or in development sub-teams on telegram.

Definitions

P1 - Critical
P2 - Important
P3 - Fix if time

🛠️ in progress
✅ merged
🔍 awaiting review


Items

Make suggestions by commenting on this issue, preferably with motivation and a proposed priority.

# Priority Description Status Notes ETA
1 P1 Derisk epic-wallet v2 <-> v3 interactions and make sure that Vitex won't have problems during the transition. WIP #42 Mar 30th
2 P1 Create release notes WIP Mar 31th
3 P2 Fix I24: Tor configuration is not working "out-of-the-box" on Windows TODO Node issue tracking sheet Apr 1st

Out of scope

# Priority Description Status Notes
1 P2 epic-box TODO
2 P2 wallet713 support WIP
3 P2 OS/X (M1 and x86) support TODO We need someone to own OS/X tests and build binaries
4 P2 Test grin v3 feature list TODO We expect to start the testing phase once V3 Beta is launched on the Mainnet

Endless try to send message buffer to peer without ban.

There is an issue where a peer is not banned if peer is connected but does not respond
This will end in an endless send loop without dropping connection.

The log is flooded.

20230723 11:56:55.742 DEBUG epic_servers::common::adapters - locator: [2ab276c8c76f, eeae4f6cf943, ff0272d3e56b, 9e5676fb09f2, e333001f5356, 1a4ab2b96783, d4e88c3fee9c, 4453012fa00c, 60b258137731, 5cc719b6aad7, bbb772d9c324, 23d3e3266a29, ce4d1ef35287, 37b72ba630f0, 1bc77c085a4b, 439210380238, 8b1dbdbdc148, 09a1c5ede5d7, 2f0531da4d2a, 454018a56d86] 20230723 11:56:55.742 DEBUG epic_servers::common::adapters - Locate headers with offset request: 0 20230723 11:56:55.744 DEBUG epic_servers::common::adapters - returning headers: 512 20230723 11:56:55.759 DEBUG epic_servers::common::adapters - locator: [2ab276c8c76f, eeae4f6cf943, ff0272d3e56b, 9e5676fb09f2, e333001f5356, 1a4ab2b96783, d4e88c3fee9c, 4453012fa00c, 60b258137731, 5cc719b6aad7, bbb772d9c324, 23d3e3266a29, ce4d1ef35287, 37b72ba630f0, 1bc77c085a4b, 439210380238, 8b1dbdbdc148, 09a1c5ede5d7, 2f0531da4d2a, 454018a56d86] 20230723 11:56:55.759 DEBUG epic_servers::common::adapters - Locate headers with offset request: 0 20230723 11:56:55.762 DEBUG epic_servers::common::adapters - returning headers: 512 20230723 11:56:55.801 DEBUG epic_p2p::protocol - handle_payload: received block: msg_len: 1215 20230723 11:56:55.818 DEBUG epic_servers::common::adapters - locator: [2ab276c8c76f, eeae4f6cf943, ff0272d3e56b, 9e5676fb09f2, e333001f5356, 1a4ab2b96783, d4e88c3fee9c, 4453012fa00c, 60b258137731, 5cc719b6aad7, bbb772d9c324, 23d3e3266a29, ce4d1ef35287, 37b72ba630f0, 1bc77c085a4b, 439210380238, 8b1dbdbdc148, 09a1c5ede5d7, 2f0531da4d2a, 454018a56d86] 20230723 11:56:55.818 DEBUG epic_servers::common::adapters - Locate headers with offset request: 0 20230723 11:56:55.821 DEBUG epic_servers::common::adapters - returning headers: 512 20230723 11:56:55.822 DEBUG epic_servers::common::adapters - locator: [2ab276c8c76f, eeae4f6cf943, ff0272d3e56b, 9e5676fb09f2, e333001f5356, 1a4ab2b96783, d4e88c3fee9c, 4453012fa00c, 60b258137731, 5cc719b6aad7, bbb772d9c324, 23d3e3266a29, ce4d1ef35287, 37b72ba630f0, 1bc77c085a4b, 439210380238, 8b1dbdbdc148, 09a1c5ede5d7, 2f0531da4d2a, 454018a56d86] 20230723 11:56:55.822 DEBUG epic_servers::common::adapters - Locate headers with offset request: 0 20230723 11:56:55.825 DEBUG epic_servers::common::adapters - returning headers: 512

https://github.com/EpicCash/epic/blob/647a7b2cf28308d7d58102273087556d3bf4ae23/p2p/src/conn.rs#L197C4-L197C4

foundation.json could not be read correct on Windows.

if cfg!(windows) {

the code adds to much buffer for Windows and can't read exact line.

from debug log: "},"key_id":"0300000000000000000000007500000000**-- -this is to much-->"}\n{"<----**

20201128 18:04:50.816 DEBUG epic_servers::common::adapters - Received block 9883bdb312ec at 2896 from 3.95.146.171:13414 [in/out/kern: 0/1/1] going to process.
20201128 18:04:50.837 INFO epic_core::core::foundation - buffer str ""output":{"features":"Coinbase","commit":"091f462dc596e5f1c236fb3b86a125d6d934501b9164fcc450a6a6e27800dd7589","proof":"7b3ea8cc1e6ea24403a809dc2b82dd335261606f9078d82e07a50240d4a127ecead8758b72ac558276f48031751f363523e0e2086b5c97a7728b86e3e4d65843040e1ac8311509dfade29367b857269ad8cd800b01e94f9d418e102c4c842ebc9a49822e439fc6ff1b8c140f747ca1c1ee71f1d0ca2f4d310611846f40e6447a194d1e616a1fb995938ac93e34e8c3a091bdfb47691704e1cc6cd8d083e16fea92ef7ab5d202dcd04235851e55ea3c2553e35694ef716f366dd83bc3bcb0bd0dd740d9496928a5f34ec7e19692d9a3febffeeb174dbd74924a6547a3f6c1081026c2f5a08b6d65cfd576ccce1f0711fc3fe7b6e1a4377c290a43f7d49104e8d7493642425209bd19e58d0c64441bf1260ab3678023e68ddec89a93ca17c2d0a02a6479db1c780b383b75259dcf6e443c37c3900f923a823574f022ad85a4a6afc845ec27e08ff270e426736b4401a65d7e4d7ca368a10a479dde7dc548d76e050e470147d462a605ef7de2ddfe430677804cd76ed97ee54b96fdd9c2be698a194995b379f80a7bfcdea69aad6abadd02f4d290e1aa5633ef8ed5ff94d52a5785cd4e6ceb1877842e32987c833f1fbfdb0d1be1516f3c04922e7312735690269a005a4de38a598036dd4c836cd944783ab8a1a8b863b9f51c1db5dd019e1080982ac1e64c21d403c7ec02e9863efb17773f88c4a358bdac6a8b711fc6e0409dcc90084ed5fe5f535914f8865f602ce925d96aabf9e61ba39fe6b92e8268886e0063576210e815d05a26a8b14607c581e630d8da9b0e2abdb2441301fc9489375146ffa7e42c6c7c6fd3dca25566b4a62e481b1c64ee9dcbbfb9405f3c13bb7d72bb29b2b3cb19dcf0c602f0e7f64d734c0d4108bb35aeb32306ba1f8357bbf6031c80d06e0e17abb9015570ab82609f0ad94955461c9d86a4e31ee6be7c43f14cf9a522"},"kernel":{"features":"Coinbase","excess":"08ef57989b1103e5d8fff8ace2630004821d73143da5c1be473827bb3863116ef6","excess_sig":"41ab4765809c64c6331d724ff52ecc2e2a77b01042613791b8f0240836af544b2e2ec9abb22540d2ce00b3a65afaddb13696070523ea3c7e4279889a74d23829"},"key_id":"0300000000000000000000007500000000**"}\n{"**
20201128 18:04:50.875 ERROR epic_util::logger -
thread 'peer_read' panicked at 'called Result::unwrap() on an Err value: Error("invalid type: string "output", expected struct CbData", line: 1, column: 8)': core\src\core\foundation.rs:106 0: backtrace::backtrace::trace
1: backtrace::capture::Backtrace::new
2: epic_util::logger::init_logger
3: std::panicking::rust_panic_with_hook
at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src\libstd\panicking.rs:515
4: std::panicking::begin_panic_handler
at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src\libstd\panicking.rs:419
5: core::panicking::panic_fmt
at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src\libcore\panicking.rs:111
6: core::option::expect_none_failed
at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src\libcore\option.rs:1211
7: epic_core::core::foundation::load_foundation_output
8: epic_core::core::block::Block::verify_coinbase
9: epic_core::core::block::Block::validate
10: epic_chain::pipe::process_block
11: epic_chain::chain::Chain::process_block
12: epic_chain::chain::Chain::process_block
13: epic_servers::common::adapters::NetToChainAdapter::init
14: <epic_servers::common::adapters::NetToChainAdapter as epic_p2p::types::ChainAdapter>::block_received
15: <epic_p2p::peers::Peers as epic_p2p::types::ChainAdapter>::block_received
16: <epic_p2p::peer::TrackingAdapter as epic_p2p::types::ChainAdapter>::block_received
17: <epic_p2p::protocol::Protocol as epic_p2p::conn::MessageHandler>::consume
18: std::sys_common::backtrace::__rust_begin_short_backtrace
19: std::sync::mpsc::shared::Packet::drop_port
20: alloc::boxed::{{impl}}::call_once<(),FnOnce<()>>
at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa\src\liballoc\boxed.rs:1017
21: alloc::boxed::{{impl}}::call_once
at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa\src\liballoc\boxed.rs:1017
22: std::sys_common::thread::start_thread
at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src\libstd\sys_common\thread.rs:13
23: std::sys::windows::thread::{{impl}}::new::thread_start
at /rustc/f509b26a7730d721ef87423a72b3fdf8724b4afa/src\libstd\sys\windows\thread.rs:51
24: BaseThreadInitThunk
25: RtlUserThreadStart

Thread 'peer_read' panicked with message:
"called Result::unwrap() on an Err value: Error("invalid type: string "output", expected struct CbData", line: 1, column: 8)"

NO PEERS

I installed the recent version on epic server on my windows server
firewall is OFF
still it just stucks with waiting for peers

please suggest

Not building

Using Raspberry Pi 3B+ on Raspbian Lite (new Version)

   Compiling fs2 v0.4.3
error[E0425]: cannot find value `PTRACE_GETFPXREGS` in crate `libc`
   --> /root/.cargo/registry/src/github.com-1285ae84e5963aae/nix-0.11.0/src/sys/ptrace.rs:77:9
    |
77  |         PTRACE_GETFPXREGS,
    |         ^^^^^^^^^^^^^^^^^
    |
   ::: /root/.cargo/registry/src/github.com-1285ae84e5963aae/libc-0.2.58/src/unix/notbsd/linux/other/b32/mod.rs:363:1
    |
363 | pub const PTRACE_GETFPREGS: ::c_uint = 14;
    | ------------------------------------------ similarly named constant `PTRACE_GETFPREGS` defined here
    |
help: a constant with a similar name exists
    |
77  |         PTRACE_GETFPREGS,
    |         ^^^^^^^^^^^^^^^^
help: consider importing this unit variant
    |
3   | use sys::ptrace::Request::PTRACE_GETFPXREGS;
    |

error[E0425]: cannot find value `PTRACE_SETFPXREGS` in crate `libc`
   --> /root/.cargo/registry/src/github.com-1285ae84e5963aae/nix-0.11.0/src/sys/ptrace.rs:84:9
    |
84  |         PTRACE_SETFPXREGS,
    |         ^^^^^^^^^^^^^^^^^
    |
   ::: /root/.cargo/registry/src/github.com-1285ae84e5963aae/libc-0.2.58/src/unix/notbsd/linux/other/b32/mod.rs:364:1
    |
364 | pub const PTRACE_SETFPREGS: ::c_uint = 15;
    | ------------------------------------------ similarly named constant `PTRACE_SETFPREGS` defined here
    |
help: a constant with a similar name exists
    |
84  |         PTRACE_SETFPREGS,
    |         ^^^^^^^^^^^^^^^^
help: consider importing this unit variant
    |
3   | use sys::ptrace::Request::PTRACE_SETFPXREGS;
    |

   Compiling term_size v0.3.1
   Compiling signal-hook v0.1.8
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0425`.
error: could not compile `nix`.

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

2.14.0-beta

After try epic-wallet check using epic server I have after a few correct receive data error in connection with server - always on the same index ( looks like end of database ). Did other users have the same ? I use linux. Maybe we need one more block mined to have correct possible to check wallet ? I do check and restore after full delete subfolders db and saved_tx and only old seed file. It is only problem with 2.14 because when I try the same procedure with old 2.13 working server on not rollback chain all check and restore works correct. No error logs in debug mode (toml) in epic-server.log

20210330 22:12:47.504 WARN epic_wallet_libwallet::internal::restore - Checking 1000 outputs, up to index 1245529. (Highest index: 1214415) 20210330 22:12:47.504 WARN epic_wallet_libwallet::internal::restore - Scanning 1000 outputs in the current Epic utxo set 20210330 22:12:47.960 ERROR epic_wallet_impls::node_clients::http - get_outputs_by_pmmr_index: error contacting http://localhost:3413. Error: ResponseError error: Cannot parse response 20210330 22:12:47.960 ERROR epic_wallet_controller::command - Wallet check failed: Restore Error 20210330 22:12:47.960 ERROR epic_wallet_controller::command - Backtrace: Wallet command failed: LibWallet Error: Restore Error

Sorting workers by its status

I have a suggestion to improve the list of workers. It would be better if active workers were shown from the beginning of the list, and also it would be better if the list was cleaned from inactive by timeout.

Clean up compilation, resolve issues which trigger warnings

Tons of warnings while compiling:

warning: variant is never constructed: `PowDifficulty`
  --> src/bin/tui/mining.rs:44:2
   |
44 |     PowDifficulty,
   |     ^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default
note: `StratumWorkerColumn` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
  --> src/bin/tui/mining.rs:39:16
   |
39 | #[derive(Copy, Clone, PartialEq, Eq, Hash)]
   |                ^^^^^
   = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: variant is never constructed: `SecondaryScaling`
   --> src/bin/tui/mining.rs:111:2
    |
111 |     SecondaryScaling,
    |     ^^^^^^^^^^^^^^^^
    |
note: `DiffColumn` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
   --> src/bin/tui/mining.rs:105:16
    |
105 | #[derive(Copy, Clone, PartialEq, Eq, Hash)]
    |                ^^^^^
    = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info)

We should clean these up for general housekeeping. Newly introduced warnings are hard to see as a result.

[BUG] Endless "enabling sync" debug messages.

At some point in running a node there suddenly appear endless "enabling sync" debug messages.
image

Can not reproduce, but it seems that peers do not answer and the node hangs in this loop.

Use a snapshot of the chain_data to speed up syncing

Suggestion:

  • save a snapshot of the current chain_data of the mainnet and upload it to the server (that can be done manually, at first);
  • speed up the syncing of the mainnet for new users through the download of the aforementioned snapshot (that must be done automatically by the server);

That feature seems to be already implemented for v2 with a snapshot that dates back to April, 2021. It would be desirable to make this feature available for v3 too.

Embed Extern Randomx Library into epic

The external library for Randomx should be included in the code of epic.

For Linux and MacOs, the path to the external library must also be registered in the system, which makes simple use impossible for many users.

Linux
export LD_LIBRARY_PATH=$(find . -iname librandomx.so | head -n 1 | xargs dirname | xargs realpath)

Mac
export LD_LIBRARY_PATH=$(find . -iname librandomx.dylib | head -n 1 | xargs dirname | xargs realpath)

Server Install Instructions Wrong

There is no .deb file in the downloaded .zip file from epic.tech

Should say: unzip file, change execute perms for epic (chmod +x epic) and run ./epic

Default peers settings are crashing synchronization

With epic-server.toml default settings server is not synchronizing after downloading the 'rollback canonical chain data' . Users have manually changed peers_preferred and peers_deny in order to start synchronize with live chain.

Building on mac

Cant build it on a Mac !SOLVED

$ cargo build

Compiling hyper-rustls v0.14.0
   Compiling git2 v0.10.2
   Compiling built v0.3.2
   Compiling croaring-sys v0.3.9
   Compiling randomx v0.1.0 (https://gitlab.com/epiccash/randomx-rust.git#21b3792d)
   Compiling epic_wallet v3.0.0-alpha-2 (/Users/devron/Downloads/git/epicwallet)
error: failed to run custom build command for `randomx v0.1.0 (https://gitlab.com/epiccash/randomx-rust.git#21b3792d)`

Caused by:
  process didn't exit successfully: `/Users/devron/Downloads/git/epicwallet/target/debug/build/randomx-a38eff86731ce054/build-script-build` (exit status: 101)
  --- stdout
  Starting randomx build
  running: "cmake" "/Users/devron/.cargo/git/checkouts/randomx-rust-fba834b8b9a2d6f8/21b3792/randomx" "-DCMAKE_INSTALL_PREFIX=/Users/devron/Downloads/git/epicwallet/target/debug/build/randomx-ef3a8f6e946fe925/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Debug"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.