gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r25867 - gnunet-java


From: gnunet
Subject: [GNUnet-SVN] r25867 - gnunet-java
Date: Thu, 24 Jan 2013 03:57:13 +0100

Author: dold
Date: 2013-01-24 03:57:13 +0100 (Thu, 24 Jan 2013)
New Revision: 25867

Modified:
   gnunet-java/ISSUES
Log:
issues


Modified: gnunet-java/ISSUES
===================================================================
--- gnunet-java/ISSUES  2013-01-24 02:55:31 UTC (rev 25866)
+++ gnunet-java/ISSUES  2013-01-24 02:57:13 UTC (rev 25867)
@@ -1,134 +1,66 @@
 
-== meeting January 3, 2013 ==
+* what currently (somewhat) works:
+ * connecting with the right topology
+ * exchanging strata, ibfs, values
 
-* https://gnunet.org/bugs/view.php?id=2720
- * had no idea where to look for this
- * non-deterministic
- * "pkill -9 gnunet" gets annoying ;)
+BUT currently sometimes crashes mesh (=>segfault), very hard to reproduce
 
-* rounds:
- 1. every peer broadcasts its set difference estimator
- 2. every peer responds to incoming difference estimators with its ibf of 
appropriate size
-  * but max. one response per round per other peer
-  * should we do this naively, or coalesce them as much as possible?
- 3. every peer responds to the IBF with the actual elements (not hashes) that 
only he has,
-    as well as a list of hashes, where he needs the actual elements.
- 4. every peer receives the actual elements, and element requests, sends 
missing elements of the other peer
- 5. every peer receives the rest of the missing elements
-* => naive implementation doubles the work (as every peer pair sends/receives 
one estimator respectively),
-  any way to make the protocol better w.r.t. this?
-* how do we determine the time for one round?
+* what's next
+ * consensus groups
+ * retries, when IBFs don't decode
+  * do we double the size, or change the salt?
 
-* how reliable of an indicator is an empty strata estimator?
- * bad, when we have large sets, there will always be overflows in the high 
frequency strata
- 
-* benchmarks / measurements of quality for consensus
- * how do we judge the quality of consensus implementation for challenging 
situations?
 
-* GNUNET_MESH_peer_request_connect_add, can it fail, how can it fail, what is 
the timeout (see docs)?
+* memory errors in c are too much fun to debug!
+ * then valgrind saved a lot of time
+  * but the stack traces are strange, how do I disable optimization?
 
-* in mesh, tunnels are two-way. each peer has a broadcast tunnel, and incoming 
tunnels from other peers.
- * now there are two ways to send a message to another peer, which of the 
tunnels is preferable / does is even matter?
-  * i.e., is there a performance difference in to-origin vs. unicast?
+==19221== Conditional jump or move depends on uninitialised value(s)
+==19221==    at 0x5D054E0: inflateReset2 (in 
/lib/x86_64-linux-gnu/libz.so.1.2.3.4)
+==19221==    by 0x5D055D8: inflateInit2_ (in 
/lib/x86_64-linux-gnu/libz.so.1.2.3.4)
+==19221==    by 0x5D004F5: uncompress (in 
/lib/x86_64-linux-gnu/libz.so.1.2.3.4)
+==19221==    by 0x529F7A3: helper_mst (testbed_api.c:1313)
+==19221==    by 0x4E78C10: GNUNET_SERVER_mst_receive (server_mst.c:265)
+==19221==    by 0x4E66C65: helper_read.part.0 (helper.c:302)
+==19221==    by 0x4E74F80: GNUNET_SCHEDULER_run (scheduler.c:597)
+==19221==    by 0x4E6E87F: GNUNET_PROGRAM_run2 (program.c:273)
+==19221==    by 0x4E6EA69: GNUNET_PROGRAM_run (program.c:308)
+==19221==    by 0x52ADD6A: GNUNET_TESTBED_test_run (testbed_api_test.c:153)
+==19221==    by 0x400E9E: run (gnunet-consensus.c:296)
+==19221==    by 0x4E6E946: GNUNET_PROGRAM_run2 (program.c:278)
 
-* the number of possible groups is very large, shouldn't we restrict their 
number?
- * shouldn't we introduce this as another parameter for conclude?
-* assume every peer in our session is either muted or in agreement, how do we 
proceed with generating the groups?
- * how do we generate/rank the groups?
 
-* interpretation of infinity as timeout for conclude: only stop exchaning once 
we have perfect consensus
+---------------------------------------------------
 
-* what is there to say about broadcast performance in gerneral?
-* bart talked about NSE style broadcast, what is this?
+==20385== Invalid read of size 4
+==20385==    at 0x651E100: send_connect (mesh_api.c:803)
+==20385==    by 0x65232E7: reconnect_cbk (mesh_api.c:876)
+==20385==    by 0x4E74F80: GNUNET_SCHEDULER_run (scheduler.c:597)
+==20385==    by 0x4E7F6C5: GNUNET_SERVICE_run (service.c:1815)
+==20385==    by 0x401475: main (gnunet-service-consensus.c:1827)
+==20385==  Address 0x7fefef830 is not stack'd, malloc'd or (recently) free'd
+==20385== 
 
-* Jan 02 22:03:52-356968 core-api-22511 INFO (Re)connecting to CORE service, 
monitoring messages of type 0
- * how does that make sense?
 
+* something i use printf's stuff, how do i find out what?
+ * looks like output from mesh, seen while running mesh test cases
+ * numbers, like 1228
 
-* IBF hash function: there's no need to have a cryptographic hash, as no 
randomization is possible,
-  and the domain of the hash function actually is really small. To find one 
collision on an IBF with n buckets, on average
-  we only have to try n random values, there's no need to find a SHA-256 
collision
-  fine.
 
-* when the client violates the protocol, what should the service do? Hang up 
(close TCP connection), keep going.
- * most services use GNUNET_break? Yes.
- * which is not very helful, as developers for other bindings (e.g. java ;) 
have to look up the right line in the c code,
-   with no error message; that's what you have the file name and line number 
for!
+* currently, the consensus protocol implementation is a bit chaotic, any ideas 
on what to improve?
+ * except for the usual, comments etc.
 
-* GNUNET_APPLICATION_TYPE_END obvious, but not documented -- eh, it is.
+* are client acks necessary now?
 
 
------------------------------------------------------------------
 
-== Meeting January 10 ==
+Enumerating Groups:
+* would it make sense only to _not include_ a peer into a group if we'd
+  lose >x elements? this makes the search space smaller, but we may lose some 
votes.
 
+For voting:
+* does first generating all groups, and then agreeing on one of them even make 
sense?
+* 
http://csis.bits-pilani.ac.in/faculty/murali/aos-09/papers/Byzantine%20Agreement%20in%20the%20Full-Information%20Model%20in%20O-log-n%20Rounds%20-%20Ben-Or%20Vaikuntanathan%20Pavlov.pdf
+ * describes the graded broadcast with n^2 communication complexity
+ * can we somehow use these ideas?
 
-* suggestion for the stream api:
- * read should take the minimum number of bytes expected
-
-
-* minor flaw in the eppstein/sigcomm paper, when d=0 => d*\alpha = 0 => no 
buckets :(
-* how do we determine the IBF size in this case?
- * constant size 1, is this sufficient?
-
-* how complete is the STREAM implementation?
- * had a quick look at the source, there seem to be some todo's left / some 
rough edges
-
-
-* what should happen if there's two incoming tunnels from one authority, or a 
tunnel gets destroyed?
-* should there be a hello message, to exchange the global consensus id of a 
tunnel, or should this just happen on the first reconciliation message?
-
-* ibf creation is expensive, should we merge responses in the all-to-all case?
-
-in the nlogn round: we should only accept incoming IBFs that are expected, 
right?
-
-* how do we align a 32-bit-array after an 8-bit array?
- * on a multiple of 32?
- * ok, actually obvious: the 32-bit array comes before the 8-bit array
-
-
-* how do we handle lost messages?
- * AFAIK stream does not allow multicast
-
-* how do we patch messages together? is this the right way?
-
-* GNUNET_CRYPTO_hash_cmp can't safely used with qsort
-
-reconciliation rotocol:
-Peer A initiates reconciliation with Peer B
-
-1. Peer A sends SE_A to Peer B, repeatedly with exponential back-off, until it 
A reveices IBF_B from B.
-   From IBF_B, A knows delta.
-2. * Peer A sends IBF_A to B, until all values from B have been received.
-   * Peer A sends values to B, until B has received all values
-
-
----------------------------------------------------
-
-* as interactivity is not possible anymore, gnunet-consensus is now
-  a profiler for consensus, you can spefify timeout, n, k, #elements, etc.
- * how would I simulate "bad" peer and various other conditions?
-
-* do we need to handle reconnecting streams, or do we see this as a peer 
failure?
- * i.e., how robust is a stream connection
-
-* when i want to debug a service, i usually prefix gdbserver,
-  how would this be possible with multiple peers? is there something like 
$SERVICE_PID?
-
-* not sure if i understand purge parameter of mst_receive
- * does it just discard buffer after complete message?
-
-* mst has no way to change callback without discarding buffer.
- * awkward when socket is identified with session
-
-* what is GNUNET_TESTBED_DisconnectAdapter for? Why is the return value of the 
adapters even
-  necessary?
-
-* GNUNET_TESTBED_service_connect: why callback *and* closure for event?
-
-* GNUNET_STREAM_write: "If size is greater than this it is not an API
-  violation, however only the said number of maximum bytes will be written."
-* why is the stream api so different client/mesh/core (i.e. why do i have to 
allocate a buffer, pass it, free it?)
-* what I am supposed to do with the size parameter of the write continuation?
- 
-




reply via email to

[Prev in Thread] Current Thread [Next in Thread]