You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuweni.apache.org by to...@apache.org on 2023/02/04 23:37:50 UTC

[incubator-tuweni] branch main updated: more readmes

This is an automated email from the ASF dual-hosted git repository.

toulmean pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git


The following commit(s) were added to refs/heads/main by this push:
     new e3d0b479d more readmes
     new 6b1a86f9c Merge pull request #514 from atoulme/readmes
e3d0b479d is described below

commit e3d0b479dda36d713f4705f9a72499d4877d3885
Author: Antoine Toulme <an...@lunar-ocean.com>
AuthorDate: Sat Feb 4 14:56:37 2023 -0800

    more readmes
---
 merkle-trie/README.md                              | 20 ++++++++++++++++++++
 stratum/proxy/README.md                            | 22 ++++++++++++++++++----
 stratum/server/README.md                           |  6 ++++++
 .../apache/tuweni/stratum/server/StratumServer.kt  |  7 +++++++
 wallet/README.md                                   |  6 ++++++
 5 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/merkle-trie/README.md b/merkle-trie/README.md
index 4bcafd28d..f97634499 100644
--- a/merkle-trie/README.md
+++ b/merkle-trie/README.md
@@ -17,5 +17,25 @@ specific language governing permissions and limitations under the License.
 | Stability      | [stable]  |
 | Component Type | [library] |
 
+This library introduces a [Patricia Merkle tree](https://en.wikipedia.org/wiki/Merkle_tree) [implementation](https://tuweni.apache.org/docs/org.apache.tuweni.trie/-merkle-patricia-trie/index.html).
+
+It can be backed in memory or using a [key-value store](https://tuweni.apache.org/docs/org.apache.tuweni.kv/index.html).
+
+The library offers a few methods to define a trie in memory quickly:
+
+* [`MerklePatriaTrie.storingStrings()`](https://tuweni.apache.org/docs/org.apache.tuweni.trie/-merkle-patricia-trie/storing-strings.html) defines a trie using keys and values as Strings.
+* [`MerklePatriaTrie.storingBytes()`](https://tuweni.apache.org/docs/org.apache.tuweni.trie/-merkle-patricia-trie/storing-bytes.html) defines a trie using keys and values as Bytes.
+
+The same approach works with a stored trie:
+
+* [`StoredMerklePatriciaTrie.storingStrings(storage: MerkleStorage)`](https://tuweni.apache.org/docs/org.apache.tuweni.trie/-stored-merkle-patricia-trie/storing-strings.html)
+* [`StoredMerklePatriciaTrie.storingBytes(storage: MerkleStorage)`](https://tuweni.apache.org/docs/org.apache.tuweni.trie/-stored-merkle-patricia-trie/storing-bytes.html)
+
+You will need to provide a storage in this case, which you will define by implementing [`MerkleStorage`](https://tuweni.apache.org/docs/org.apache.tuweni.trie/-merkle-storage/index.html).
+
+Note in Java, you should use [`AsyncMerkleStorage`](https://tuweni.apache.org/docs/org.apache.tuweni.trie/-async-merkle-storage/index.html) instead to avoid dealing with coroutines.
+
+An easy way to provide storage is to rely on a key-value store as defined in the [kv](https://tuweni.apache.org/docs/org.apache.tuweni.kv/index.html) library.
+
 [stable]:https://github.com/apache/incubator-tuweni/tree/main/docs/index.md#stable
 [library]:https://github.com/apache/incubator-tuweni/tree/main/docs/index.md#library
\ No newline at end of file
diff --git a/stratum/proxy/README.md b/stratum/proxy/README.md
index a19d39b28..f77d0c1f0 100644
--- a/stratum/proxy/README.md
+++ b/stratum/proxy/README.md
@@ -12,10 +12,24 @@ specific language governing permissions and limitations under the License.
  --->
 # Stratum Proxy
 
-| Status         |           |
-|----------------|-----------|
-| Stability      | [beta]    |
-| Component Type | [library] |
+| Status         |               |
+|----------------|---------------|
+| Stability      | [beta]        |
+| Component Type | [application] |
+
+This application acts as a proxy between an Ethereum client and miners.
+
+It connects to the client over JSON-RPC (using http://localhost:8545), polling for new work periodically, and submitting work sent by clients.
+
+It runs a [Stratum server](https://tuweni.apache.org/docs/org.apache.tuweni.stratum.server/-stratum-server/index.html) to which miners can connect to over Stratum.
+
+Usage:
+* Expose a Stratum server on 0.0.0.0:16000:
+```bash
+$> stratum-proxy 16000
+```
+
+
 
 [beta]:https://github.com/apache/incubator-tuweni/tree/main/docs/index.md#beta
 [library]:https://github.com/apache/incubator-tuweni/tree/main/docs/index.md#library
\ No newline at end of file
diff --git a/stratum/server/README.md b/stratum/server/README.md
index 1be4c7167..8c1bbdcf1 100644
--- a/stratum/server/README.md
+++ b/stratum/server/README.md
@@ -17,5 +17,11 @@ specific language governing permissions and limitations under the License.
 | Stability      | [beta]    |
 | Component Type | [library] |
 
+This library introduces a [Stratum server](https://tuweni.apache.org/docs/org.apache.tuweni.stratum.server/-stratum-server/index.html) which listens on a TCP port for connections from stratum clients.
+
+The server is compatible with the eth-proxy and Stratum1 protocols.
+
+The server accepts new work with the `setNewWork(powInput: PoWInput)` method, with a parameter of type [PowInput](https://tuweni.apache.org/docs/org.apache.tuweni.stratum.server/-po-w-input/index.html).
+
 [beta]:https://github.com/apache/incubator-tuweni/tree/main/docs/index.md#beta
 [library]:https://github.com/apache/incubator-tuweni/tree/main/docs/index.md#library
\ No newline at end of file
diff --git a/stratum/server/src/main/kotlin/org/apache/tuweni/stratum/server/StratumServer.kt b/stratum/server/src/main/kotlin/org/apache/tuweni/stratum/server/StratumServer.kt
index 944ae700b..792c7690f 100644
--- a/stratum/server/src/main/kotlin/org/apache/tuweni/stratum/server/StratumServer.kt
+++ b/stratum/server/src/main/kotlin/org/apache/tuweni/stratum/server/StratumServer.kt
@@ -92,6 +92,13 @@ class StratumServer(
   private var tcpServer: NetServer? = null
   private val denyList = ExpiringSet<String>(denyTimeout)
 
+  /**
+   * Accepts new work. sending it to all connected clients. New clients will also be notified of this work.
+   *
+   * This method returns immediately, all messages are sent asynchronously.
+   *
+   * @param powInput the new work
+   */
   fun setNewWork(powInput: PoWInput) {
     for (protocol in protocols) {
       launch {
diff --git a/wallet/README.md b/wallet/README.md
index 1b703f30a..b9da7baae 100644
--- a/wallet/README.md
+++ b/wallet/README.md
@@ -17,5 +17,11 @@ specific language governing permissions and limitations under the License.
 | Stability      | [alpha]   |
 | Component Type | [library] |
 
+This library defines a wallet you can use to sign transactions using a private key on the SECP256K1 curve.
+
+The library handles storing the private key of the wallet using symmetric encryption via an AES256 key.
+
+The library holds the private key in memory, and therefore is susceptible to memory dumps.
+
 [alpha]:https://github.com/apache/incubator-tuweni/tree/main/docs/index.md#alpha
 [library]:https://github.com/apache/incubator-tuweni/tree/main/docs/index.md#library
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tuweni.apache.org
For additional commands, e-mail: commits-help@tuweni.apache.org