Я использую частную сеть с geth 1.7, и у меня есть несколько вопросов
1- Чтобы получить время выполнения функции, я нашел обсуждение об использовании Data.getTime(), но мне интересно, смог ли кто-нибудь успешно реализовать другие методы, такие как performance.now(), для измерения времени в командных строках geth. ? Я пробовал, но кажется, что функция не определена!!
2- как я могу получить метку времени для определенного блока, если я знаю номер блока?
3- как я могу майнить только один блок. Например, я отправляю одну транзакцию в частную сеть, а затем только один блок, содержащий эту транзакцию. Я нашел здесь, что некоторые предлагают использовать цикл while, чтобы проверить, нет ли ожидающих транзакций, а затем остановить майнинг. Но мне не нужен этот метод, я предпочитаю майнить только один блок.
Заранее спасибо,
1: Вы можете получить время выполнения функции, обновив исходный код в файле jsre.go следующим образом:
func (self *JSRE) Evaluate(code string, w io.Writer) error {
var fail error
self.Do(func(vm *otto.Otto) {
var startTime = time.Now();
fmt.Println("jsre function ",code," start")
val, err := vm.Run(code)
if err != nil {
prettyError(vm, err, w)
} else {
prettyPrint(vm, val, w)
}
fmt.Fprintln(w)
fmt.Println("jsre function ",code," end ,consume time " ,(time.Now().UnixNano() - startTime.UnixNano()))
})
return fail
}
а затем разверните контракт для тестирования.
2: нет способа получить временную метку блока по номеру, block.timestamp
или now
это просто текущая временная метка блока в секундах с эпохи unix.
3: miner.start(1);admin.sleepBlocks(1);miner.stop();
просто добывает один блок, а затем останавливает добычу. Пожалуйста, обратите внимание на выполнение вместе.
БинГоБинБин
БинГоБинБин
БинГоБинБин
МВт
БинГоБинБин
geth
, чтобы перестроить и запустить geth./build/bin/geth --datadir=./dev/data --networkid 1 --dev console
? этот способ подходит для меня, пожалуйста, каждый шаг правильный ~МВт