mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Sweep across the non-Tier-1 paper catalogue (Tier-1 owned by parallel
agent and excluded). All 113 processed papers already had luxcover
wired up; this commit fixes 14 build breakers and produces fresh
PDFs across the catalogue.
Fixes:
- lux-blockchain-scaling-laws: em-dash inside lstlisting -> --
- lux-corona-pq: stale \input pointing at 03-the-corona-scheme renamed
to 03-the-corona-scheme (file already renamed on disk)
- lux-lattice-cryptography-primer: same Corona->Corona rename
- lux-formal-verification-lean4: Lean source uses unicode (×, ∀, ∃, ∈,
∧, ∨, ∩, ≠, ⟨, ⟩, ·, ¬) inside lstlistings. Added a literate map
so listings render the math glyphs without UTF-8 fault.
- lux-id-did-specification: ✓/✗ in tabular replaced with \ding{51}
/ \ding{55} (pifont). Added pifont package.
- lux-ntt-simd-implementation: middle-dot in Go assembly listings;
added literate {·}{\textperiodcentered}.
- lux-ntt-transform: μ, ×, –, — in regular text (no T1 fontenc).
Replaced with $\mu$/$\times$/--/--- via unicode->latex sweep.
- lux-perpetuals-derivatives, lux-quantum-consensus,
lux-quasar-consensus, lux-tee-computing-mesh: same unicode->latex
sweep across body text. Also fixed broken math segment
`$L_{avg} = 10$\times$$` -> `$L_{avg} = 10\times$`.
- lux-zchain: emoji glyphs in roadmap table replaced with
parenthetical text.
- lux-triple-proof-consensus: dropped duplicate \usepackage{geometry}
that clashed with luxcover (geometry option clash).
- pq: defined missing \Rq macro.
PDFs rebuilt for the full Tier-2/3 set.
Excluded (Tier-1, parallel agent): lp-073-pulsar, lp-stricte2epq,
dag-evm-formal, lp-010-quasar-stm-{3,4}, lp-020-quasar-consensus,
lux-institutional-custody, lux-nist-mptc-submission, pqsafe-il5,
pq-rns, plus shared/ and lps/.
69 lines
1.8 KiB
TeX
69 lines
1.8 KiB
TeX
\section{Developer Experience}
|
|
|
|
\label{sec:dev-experience}
|
|
|
|
\subsection{Solidity SDK}
|
|
|
|
Listing \ref{lst:dev-example} shows a complete example of submitting a confidential risk calculation:
|
|
|
|
\begin{lstlisting}[caption={Private Risk Engine Example},label={lst:dev-example}]
|
|
pragma solidity ^0.8.24;
|
|
import ''lux/ILux.sol'';
|
|
|
|
contract PrivateRiskEngine {
|
|
ILux constant lux = ILux(0xLuxAppchainAddr);
|
|
|
|
mapping(uint256 => bytes32) public pendingJobs;
|
|
|
|
function calcRisk(
|
|
bytes32 positionId,
|
|
uint256 notional
|
|
) external {
|
|
bytes memory payload = abi.encode(
|
|
positionId, notional
|
|
);
|
|
uint256 jobId = lux.submit{value: 1 ether}(
|
|
address(0), // auto-match worker
|
|
0xb1a2c3d4..., // code CID
|
|
payload,
|
|
2_000_000 // gas limit
|
|
);
|
|
pendingJobs[jobId] = positionId;
|
|
}
|
|
|
|
function onLuxResult(
|
|
uint256 jobId,
|
|
bytes calldata result
|
|
) external {
|
|
require(msg.sender == address(lux));
|
|
uint256 riskScore = abi.decode(result, (uint256));
|
|
bytes32 positionId = pendingJobs[jobId];
|
|
// Act on risk score...
|
|
delete pendingJobs[jobId];
|
|
}
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsection{Client-Side Encryption}
|
|
|
|
The Lux TypeScript SDK handles encryption transparently:
|
|
|
|
\begin{lstlisting}[language=Solidity,caption={TypeScript SDK Usage}]
|
|
import { LuxClient } from '@lux/sdk';
|
|
|
|
const client = new LuxClient(provider);
|
|
|
|
// Encrypt and submit job
|
|
const jobId = await client.submitJob({
|
|
codeCID: 'QmAbc123...',
|
|
input: { positionId: '0x...', notional: 1000000 },
|
|
gasLimit: 2_000_000,
|
|
teeType: 'GPU' // Prefer GPU TEE
|
|
});
|
|
|
|
// Wait for result
|
|
const result = await client.waitForResult(jobId);
|
|
console.log('Risk score:', result.riskScore);
|
|
\end{lstlisting}
|
|
|