mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	updated pow-miner + small bugfix
This commit is contained in:
		
							parent
							
								
									b84e3e9735
								
							
						
					
					
						commit
						b36118dd27
					
				
					 16 changed files with 344 additions and 25 deletions
				
			
		|  | @ -1,3 +1,21 @@ | |||
| /*
 | ||||
|     This file is part of TON Blockchain Library. | ||||
| 
 | ||||
|     TON Blockchain Library is free software: you can redistribute it and/or modify | ||||
|     it under the terms of the GNU Lesser General Public License as published by | ||||
|     the Free Software Foundation, either version 2 of the License, or | ||||
|     (at your option) any later version. | ||||
| 
 | ||||
|     TON Blockchain Library is distributed in the hope that it will be useful, | ||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|     GNU Lesser General Public License for more details. | ||||
| 
 | ||||
|     You should have received a copy of the GNU Lesser General Public License | ||||
|     along with TON Blockchain Library.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
| 
 | ||||
|     Copyright 2017-2020 Telegram Systems LLP | ||||
| */ | ||||
| #include "Miner.h" | ||||
| 
 | ||||
| #include "td/utils/Random.h" | ||||
|  | @ -75,6 +93,9 @@ td::optional<std::string> Miner::run(const Options& options) { | |||
|   td::int64 i = 0, i0 = 0; | ||||
|   for (; i < options.max_iterations; i++) { | ||||
|     if (!(i & 0xfffff) || head.back() != guard) { | ||||
|       if (options.token_) { | ||||
|         break; | ||||
|       } | ||||
|       if (options.hashes_computed) { | ||||
|         *options.hashes_computed += i - i0; | ||||
|       } | ||||
|  |  | |||
|  | @ -1,6 +1,25 @@ | |||
| /*
 | ||||
|     This file is part of TON Blockchain Library. | ||||
| 
 | ||||
|     TON Blockchain Library is free software: you can redistribute it and/or modify | ||||
|     it under the terms of the GNU Lesser General Public License as published by | ||||
|     the Free Software Foundation, either version 2 of the License, or | ||||
|     (at your option) any later version. | ||||
| 
 | ||||
|     TON Blockchain Library is distributed in the hope that it will be useful, | ||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|     GNU Lesser General Public License for more details. | ||||
| 
 | ||||
|     You should have received a copy of the GNU Lesser General Public License | ||||
|     along with TON Blockchain Library.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
| 
 | ||||
|     Copyright 2017-2020 Telegram Systems LLP | ||||
| */ | ||||
| #pragma once | ||||
| 
 | ||||
| #include "block/block.h" | ||||
| #include "td/utils/CancellationToken.h" | ||||
| #include "td/utils/optional.h" | ||||
| #include "td/utils/Time.h" | ||||
| #include <atomic> | ||||
|  | @ -16,6 +35,7 @@ class Miner { | |||
|     td::optional<td::Timestamp> expire_at; | ||||
|     td::int64 max_iterations = std::numeric_limits<td::int64>::max(); | ||||
|     std::atomic<td::uint64>* hashes_computed{nullptr}; | ||||
|     td::CancellationToken token_; | ||||
|   }; | ||||
| 
 | ||||
|   static td::optional<std::string> run(const Options& options); | ||||
|  |  | |||
|  | @ -1,3 +1,30 @@ | |||
| /* 
 | ||||
|     This file is part of TON Blockchain source code. | ||||
| 
 | ||||
|     TON Blockchain is free software; you can redistribute it and/or | ||||
|     modify it under the terms of the GNU General Public License | ||||
|     as published by the Free Software Foundation; either version 2 | ||||
|     of the License, or (at your option) any later version. | ||||
| 
 | ||||
|     TON Blockchain is distributed in the hope that it will be useful, | ||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|     GNU General Public License for more details. | ||||
| 
 | ||||
|     You should have received a copy of the GNU General Public License | ||||
|     along with TON Blockchain.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
| 
 | ||||
|     In addition, as a special exception, the copyright holders give permission  | ||||
|     to link the code of portions of this program with the OpenSSL library.  | ||||
|     You must obey the GNU General Public License in all respects for all  | ||||
|     of the code used other than OpenSSL. If you modify file(s) with this  | ||||
|     exception, you may extend this exception to your version of the file(s),  | ||||
|     but you are not obligated to do so. If you do not wish to do so, delete this  | ||||
|     exception statement from your version. If you delete this exception statement  | ||||
|     from all source files in the program, then also delete it here. | ||||
| 
 | ||||
|     Copyright 2017-2020 Telegram Systems LLP | ||||
| */ | ||||
| #include "common/bigint.hpp" | ||||
| #include "common/refint.h" | ||||
| #include "block/block.h" | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue