Size: a a a

2019 June 27

CI

Co. In in Dash-Ru
BUZOVA
сейчас еще раз запустил из самого кошелька реиндекс (в ремонте кошелька) посмотрим
Победил?)

Я немного поинвестигейтил)

1. Нужно обновить VC++ 2015-2019 Runtime
2. Похоже в 32-х битной винде утечки памяти небольшие при реиндексе блоков.

Реиндекс нужно делать в два этапа. Я для 2гб оперативки делал так как Win7x86.
До мая 2019, потом закрывал приложение, оно очищало память, и после перезапуска подгружал блоки уже за 2019-й.

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

CI

Co. In in Dash-Ru
//+build windows,386

package main

import (
 "fmt"
 "golang.org/x/sys/windows"
 "log"
 "strings"
 "syscall"
 "unsafe"
)

const (
 PROCESS_SET_QUOTA         = 0x0100
 PROCESS_QUERY_INFORMATION = 0x0400
 TH32CS_SNAPPROCESS        = 0x00000002
)

type WindowsProcess struct {
 ProcessID       int
 ParentProcessID int
 Exe             string
}

func newWindowsProcess(e *windows.ProcessEntry32) WindowsProcess {
 end := 0
 for {
   if e.ExeFile[end] == 0 {
     break
   }
   end++
 }

 return WindowsProcess{
   ProcessID:       int(e.ProcessID),
   ParentProcessID: int(e.ParentProcessID),
   Exe:             syscall.UTF16ToString(e.ExeFile[:end]),
 }
}

func findProcessByName(processes []WindowsProcess, name string) *WindowsProcess {
 for _, p := range processes {
   if strings.ToLower(p.Exe) == strings.ToLower(name) {
     return &p
   }
 }

 return nil
}

func processes() ([]WindowsProcess, error) {
 handle, err := windows.CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
 if err != nil {
   return nil, err
 }
 defer windows.CloseHandle(handle)

 var entry windows.ProcessEntry32
 entry.Size = uint32(unsafe.Sizeof(entry))
 // get the first process
 err = windows.Process32First(handle, &entry)
 if err != nil {
   return nil, err
 }

 results := make([]WindowsProcess, 0, 50)
 for {
   results = append(results, newWindowsProcess(&entry))

   err = windows.Process32Next(handle, &entry)
   if err != nil {
     // windows sends ERROR_NO_MORE_FILES on last process
     if err == syscall.ERROR_NO_MORE_FILES {
       return results, nil
     }
     return nil, err
   }
 }
}

func main() {
 procs, err := processes()

 if err != nil {
   log.Fatal(err)
 }

 proc := findProcessByName(procs, "dash-qt.exe")

 if proc == nil {
   panic("Process not found")
 }

 handle, err := windows.OpenProcess(
   PROCESS_SET_QUOTA|PROCESS_QUERY_INFORMATION,
   false,
   uint32(proc.ProcessID),
 )

 if err != nil {
   log.Fatal(err)
 }

 fmt.Println(handle)

 kernel32DLL := syscall.NewLazyDLL("kernel32.dll")
 setProcessWorkingSetSize := kernel32DLL.NewProc("SetProcessWorkingSetSize")
 var minOne = -1

 setProcessWorkingSetSize.Call(
   uintptr(handle),
   uintptr(minOne),
   uintptr(minOne),
 )
}


Накидал говнокодика на Go, чтоб чистил оперативку для DashCore процесса для Winx86. Скидывать Exe не буду, но если соберёте сами из исходников, то можно не перезапускать кошель а просто очистить память запустим софтину
источник

CI

Co. In in Dash-Ru
Либо пинганите в понедельник, допишу, чтоб мониторил оставшуюся и сам чистил)
источник

J

JanMia in Dash-Ru
Прямо даже интересно, сколько из участников данного форума осознали что вы написали ))
источник

tt

test test in Dash-Ru
Мне кажется тебе лучше создать пуллреквест на гитхабе. И пофиксить этот баг для всех. Опенсорс ведь.
источник

CI

Co. In in Dash-Ru
test test
Мне кажется тебе лучше создать пуллреквест на гитхабе. И пофиксить этот баг для всех. Опенсорс ведь.
Я не работаю с си++) Прочитать код еще могу, но писать, извольте. Плюс нужно найти место с утечкой.
источник

B

BUZOVA in Dash-Ru
Co. In
//+build windows,386

package main

import (
 "fmt"
 "golang.org/x/sys/windows"
 "log"
 "strings"
 "syscall"
 "unsafe"
)

const (
 PROCESS_SET_QUOTA         = 0x0100
 PROCESS_QUERY_INFORMATION = 0x0400
 TH32CS_SNAPPROCESS        = 0x00000002
)

type WindowsProcess struct {
 ProcessID       int
 ParentProcessID int
 Exe             string
}

func newWindowsProcess(e *windows.ProcessEntry32) WindowsProcess {
 end := 0
 for {
   if e.ExeFile[end] == 0 {
     break
   }
   end++
 }

 return WindowsProcess{
   ProcessID:       int(e.ProcessID),
   ParentProcessID: int(e.ParentProcessID),
   Exe:             syscall.UTF16ToString(e.ExeFile[:end]),
 }
}

func findProcessByName(processes []WindowsProcess, name string) *WindowsProcess {
 for _, p := range processes {
   if strings.ToLower(p.Exe) == strings.ToLower(name) {
     return &p
   }
 }

 return nil
}

func processes() ([]WindowsProcess, error) {
 handle, err := windows.CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
 if err != nil {
   return nil, err
 }
 defer windows.CloseHandle(handle)

 var entry windows.ProcessEntry32
 entry.Size = uint32(unsafe.Sizeof(entry))
 // get the first process
 err = windows.Process32First(handle, &entry)
 if err != nil {
   return nil, err
 }

 results := make([]WindowsProcess, 0, 50)
 for {
   results = append(results, newWindowsProcess(&entry))

   err = windows.Process32Next(handle, &entry)
   if err != nil {
     // windows sends ERROR_NO_MORE_FILES on last process
     if err == syscall.ERROR_NO_MORE_FILES {
       return results, nil
     }
     return nil, err
   }
 }
}

func main() {
 procs, err := processes()

 if err != nil {
   log.Fatal(err)
 }

 proc := findProcessByName(procs, "dash-qt.exe")

 if proc == nil {
   panic("Process not found")
 }

 handle, err := windows.OpenProcess(
   PROCESS_SET_QUOTA|PROCESS_QUERY_INFORMATION,
   false,
   uint32(proc.ProcessID),
 )

 if err != nil {
   log.Fatal(err)
 }

 fmt.Println(handle)

 kernel32DLL := syscall.NewLazyDLL("kernel32.dll")
 setProcessWorkingSetSize := kernel32DLL.NewProc("SetProcessWorkingSetSize")
 var minOne = -1

 setProcessWorkingSetSize.Call(
   uintptr(handle),
   uintptr(minOne),
   uintptr(minOne),
 )
}


Накидал говнокодика на Go, чтоб чистил оперативку для DashCore процесса для Winx86. Скидывать Exe не буду, но если соберёте сами из исходников, то можно не перезапускать кошель а просто очистить память запустим софтину
не победил.. сейчас переустанавливаю винду) все равно давно собирался, как переустановлю поставлю заного все и посмотрим
источник

B

BUZOVA in Dash-Ru
по поводу оперативки и реиндекса да... было когда она заканчивалась и приложение закрывалось
источник

B

BUZOVA in Dash-Ru
сейчас как буду качать заного так и сделаю, в ручную закрою и перезапущу
источник

CI

Co. In in Dash-Ru
BUZOVA
сейчас как буду качать заного так и сделаю, в ручную закрою и перезапущу
Ставь сразу х64))
источник

B

BUZOVA in Dash-Ru
Co. In
Ставь сразу х64))
у меня и стоит 64)
источник

IM

Igor Merk in Dash-Ru
Господа, а есть группы с ценами на обмен криптовалют за наличные?
источник

ДW

Дмитрий WinTime in Dash-Ru
всем привет, как удалить историю транзакций на кошельке? И можно ли удалить историю транзакций если на балансе есть монеты?
источник

tt

test test in Dash-Ru
Дмитрий WinTime
всем привет, как удалить историю транзакций на кошельке? И можно ли удалить историю транзакций если на балансе есть монеты?
Никак. История хранится в блокчейне.
источник

ДW

Дмитрий WinTime in Dash-Ru
имеется ввиду локально. Чтобы удалить именно с моего компьютера (без переустановки программы)
источник

✔R

✔ Alex Ru in Dash-Ru
Дмитрий WinTime
имеется ввиду локально. Чтобы удалить именно с моего компьютера (без переустановки программы)
Кошелёк всегда синхронизируется с блокчейном, а там транзакции сохраняются навсегда. Вы можете завести новый кошелёк без транзакций и они соотв не будут отображаться.
источник
2019 June 28

CI

Co. In in Dash-Ru
Дмитрий WinTime
всем привет, как удалить историю транзакций на кошельке? И можно ли удалить историю транзакций если на балансе есть монеты?
Если транзакция на одном адресе конкретном, то можно импортировать в новый кошелёк все адреса кроме этого
источник

ДW

Дмитрий WinTime in Dash-Ru
спасибо
источник

N

Nik in Dash-Ru
Ну что господа, держим кулаки за решения на саммите g20!? Надеюсь press wall там под Деш оформлен:)
источник

D

Dashmaster in Dash-Ru
Nik
Ну что господа, держим кулаки за решения на саммите g20!? Надеюсь press wall там под Деш оформлен:)
крипта будет развиваться не благодаря им, а вопреки
источник