@@ -4,13 +4,13 @@ defmodule BitcoinMining.Server do
4
4
{ :ok , iflist } = :inet . getif ( )
5
5
make_distributed ( Enum . reverse ( iflist ) , length ( iflist ) )
6
6
k = String . to_integer ( hd ( parameter ) )
7
- server_id = spawn_link ( fn ( ) -> server_print ( ) end )
8
-
7
+ server_id = spawn_link ( fn ( ) -> server_print ( k ) end )
8
+ :global . register_name ( :serve , server_id )
9
9
{ :ok , pid } = Task.Supervisor . start_link ( )
10
- for _ <- 1 .. 100 do
10
+ logproc = System . schedulers_online ( )
11
+ for _ <- 1 .. logproc do
11
12
Task.Supervisor . async ( pid , fn ( ) -> miner ( server_id , k ) end )
12
13
end
13
- spawn_remote ( server_id , k )
14
14
receive do: ( _ -> :ok )
15
15
end
16
16
@@ -36,38 +36,25 @@ defmodule BitcoinMining.Server do
36
36
end
37
37
end
38
38
39
- def spawn_remote ( s_id , k ) do
40
- empty? ( Node . list )
41
- remotep_id = Node . spawn ( List . last ( Node . list ( ) ) , fn ( ) -> miner ( s_id , k ) end )
42
- Process . monitor ( remotep_id )
43
- receive do: ( _ -> spawn_remote ( s_id , k ) )
44
- end
45
-
46
- def empty? ( [ ] ) do
47
- empty? ( Node . list )
48
- end
49
- def empty? ( list ) when is_list ( list ) do
50
- nil
51
- end
52
-
53
- def server_print ( ) do
39
+ def server_print ( k ) do
54
40
receive do
41
+ { :getk , client } -> send ( client , { :sendk , k } )
55
42
msg -> IO . puts msg
56
43
end
57
- server_print ( )
44
+ server_print ( k )
58
45
end
59
46
60
47
def miner ( s_id , k ) do
61
- msgt = "asukhtankar" <> randomizer ( )
48
+ msgt = "asukhtankar" <> randomizer ( 9 )
62
49
temp = :crypto . hash ( :sha256 , msgt ) |> Base . encode16 |> String . downcase
63
50
if ( String . slice ( temp , 0 , k ) === String . duplicate ( "0" , k ) ) do
64
51
send ( s_id , msgt <> "\t " <> temp )
65
52
end
66
53
miner ( s_id , k )
67
54
end
68
55
69
- def randomizer do
70
- :crypto . strong_rand_bytes ( 10 ) |> Base . url_encode64 |> binary_part ( 0 , 10 ) |> String . downcase
56
+ def randomizer ( l ) do
57
+ :crypto . strong_rand_bytes ( l ) |> Base . url_encode64 |> binary_part ( 0 , l ) |> String . downcase
71
58
end
72
59
73
60
end
0 commit comments